migrate_mode.h 985 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef MIGRATE_MODE_H_INCLUDED
  3. #define MIGRATE_MODE_H_INCLUDED
  4. /*
  5. * MIGRATE_ASYNC means never block
  6. * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
  7. * on most operations but not ->writepage as the potential stall time
  8. * is too significant
  9. * MIGRATE_SYNC will block when migrating pages
  10. * MIGRATE_SYNC_NO_COPY will block when migrating pages but will not copy pages
  11. * with the CPU. Instead, page copy happens outside the migratepage()
  12. * callback and is likely using a DMA engine. See migrate_vma() and HMM
  13. * (mm/hmm.c) for users of this mode.
  14. */
  15. enum migrate_mode {
  16. MIGRATE_ASYNC,
  17. MIGRATE_SYNC_LIGHT,
  18. MIGRATE_SYNC,
  19. MIGRATE_SYNC_NO_COPY,
  20. };
  21. enum migrate_reason {
  22. MR_COMPACTION,
  23. MR_MEMORY_FAILURE,
  24. MR_MEMORY_HOTPLUG,
  25. MR_SYSCALL, /* also applies to cpusets */
  26. MR_MEMPOLICY_MBIND,
  27. MR_NUMA_MISPLACED,
  28. MR_CONTIG_RANGE,
  29. MR_LONGTERM_PIN,
  30. MR_DEMOTION,
  31. MR_TYPES
  32. };
  33. #endif /* MIGRATE_MODE_H_INCLUDED */