forked from mirrors/linux
		
	 8eb42beac8
			
		
	
	
		8eb42beac8
		
	
	
	
	
		
			
			In order to remove the need to manually keep three different files in synch, provide a common definition of the mapping between enum migrate_reason, and the associated strings for each enum item. 1. Use the tracing system's mapping of enums to strings, by redefining and reusing the MIGRATE_REASON and supporting macros, and using that to populate the string array in mm/debug.c. 2. Move enum migrate_reason to migrate_mode.h. This is not strictly necessary for this patch, but migrate mode and migrate reason go together, so this will slightly clarify things. Link: https://lkml.kernel.org/r/20210922041755.141817-2-jhubbard@nvidia.com Signed-off-by: John Hubbard <jhubbard@nvidia.com> Reviewed-by: Weizhao Ouyang <o451686892@gmail.com> Cc: "Huang, Ying" <ying.huang@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef MIGRATE_MODE_H_INCLUDED
 | |
| #define MIGRATE_MODE_H_INCLUDED
 | |
| /*
 | |
|  * MIGRATE_ASYNC means never block
 | |
|  * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
 | |
|  *	on most operations but not ->writepage as the potential stall time
 | |
|  *	is too significant
 | |
|  * MIGRATE_SYNC will block when migrating pages
 | |
|  * MIGRATE_SYNC_NO_COPY will block when migrating pages but will not copy pages
 | |
|  *	with the CPU. Instead, page copy happens outside the migratepage()
 | |
|  *	callback and is likely using a DMA engine. See migrate_vma() and HMM
 | |
|  *	(mm/hmm.c) for users of this mode.
 | |
|  */
 | |
| enum migrate_mode {
 | |
| 	MIGRATE_ASYNC,
 | |
| 	MIGRATE_SYNC_LIGHT,
 | |
| 	MIGRATE_SYNC,
 | |
| 	MIGRATE_SYNC_NO_COPY,
 | |
| };
 | |
| 
 | |
| enum migrate_reason {
 | |
| 	MR_COMPACTION,
 | |
| 	MR_MEMORY_FAILURE,
 | |
| 	MR_MEMORY_HOTPLUG,
 | |
| 	MR_SYSCALL,		/* also applies to cpusets */
 | |
| 	MR_MEMPOLICY_MBIND,
 | |
| 	MR_NUMA_MISPLACED,
 | |
| 	MR_CONTIG_RANGE,
 | |
| 	MR_LONGTERM_PIN,
 | |
| 	MR_DEMOTION,
 | |
| 	MR_TYPES
 | |
| };
 | |
| 
 | |
| #endif		/* MIGRATE_MODE_H_INCLUDED */
 |