xref: /linux-6.15/include/linux/migrate_mode.h (revision ced816a7)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
26536e312SAndrew Morton #ifndef MIGRATE_MODE_H_INCLUDED
36536e312SAndrew Morton #define MIGRATE_MODE_H_INCLUDED
46536e312SAndrew Morton /*
56536e312SAndrew Morton  * MIGRATE_ASYNC means never block
66536e312SAndrew Morton  * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
76536e312SAndrew Morton  *	on most operations but not ->writepage as the potential stall time
86536e312SAndrew Morton  *	is too significant
96536e312SAndrew Morton  * MIGRATE_SYNC will block when migrating pages
106536e312SAndrew Morton  */
116536e312SAndrew Morton enum migrate_mode {
126536e312SAndrew Morton 	MIGRATE_ASYNC,
136536e312SAndrew Morton 	MIGRATE_SYNC_LIGHT,
146536e312SAndrew Morton 	MIGRATE_SYNC,
156536e312SAndrew Morton };
166536e312SAndrew Morton 
178eb42beaSJohn Hubbard enum migrate_reason {
188eb42beaSJohn Hubbard 	MR_COMPACTION,
198eb42beaSJohn Hubbard 	MR_MEMORY_FAILURE,
208eb42beaSJohn Hubbard 	MR_MEMORY_HOTPLUG,
218eb42beaSJohn Hubbard 	MR_SYSCALL,		/* also applies to cpusets */
228eb42beaSJohn Hubbard 	MR_MEMPOLICY_MBIND,
238eb42beaSJohn Hubbard 	MR_NUMA_MISPLACED,
248eb42beaSJohn Hubbard 	MR_CONTIG_RANGE,
258eb42beaSJohn Hubbard 	MR_LONGTERM_PIN,
268eb42beaSJohn Hubbard 	MR_DEMOTION,
27*ced816a7SHonggyu Kim 	MR_DAMON,
288eb42beaSJohn Hubbard 	MR_TYPES
298eb42beaSJohn Hubbard };
308eb42beaSJohn Hubbard 
316536e312SAndrew Morton #endif		/* MIGRATE_MODE_H_INCLUDED */
32