| /* 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, | |
| }; | |
| #endif /* MIGRATE_MODE_H_INCLUDED */ |