Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[linux-2.6-microblaze.git] / include / linux / migrate_mode.h
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
22 #endif          /* MIGRATE_MODE_H_INCLUDED */