Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef MIGRATE_MODE_H_INCLUDED
0003 #define MIGRATE_MODE_H_INCLUDED
0004 /*
0005  * MIGRATE_ASYNC means never block
0006  * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
0007  *  on most operations but not ->writepage as the potential stall time
0008  *  is too significant
0009  * MIGRATE_SYNC will block when migrating pages
0010  * MIGRATE_SYNC_NO_COPY will block when migrating pages but will not copy pages
0011  *  with the CPU. Instead, page copy happens outside the migratepage()
0012  *  callback and is likely using a DMA engine. See migrate_vma() and HMM
0013  *  (mm/hmm.c) for users of this mode.
0014  */
0015 enum migrate_mode {
0016     MIGRATE_ASYNC,
0017     MIGRATE_SYNC_LIGHT,
0018     MIGRATE_SYNC,
0019     MIGRATE_SYNC_NO_COPY,
0020 };
0021 
0022 enum migrate_reason {
0023     MR_COMPACTION,
0024     MR_MEMORY_FAILURE,
0025     MR_MEMORY_HOTPLUG,
0026     MR_SYSCALL,     /* also applies to cpusets */
0027     MR_MEMPOLICY_MBIND,
0028     MR_NUMA_MISPLACED,
0029     MR_CONTIG_RANGE,
0030     MR_LONGTERM_PIN,
0031     MR_DEMOTION,
0032     MR_TYPES
0033 };
0034 
0035 #endif      /* MIGRATE_MODE_H_INCLUDED */