diff options
Diffstat (limited to 'include/linux/compaction.h')
-rw-r--r-- | include/linux/compaction.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/compaction.h b/include/linux/compaction.h index 51a90b7f2d60..e988037abd2a 100644 --- a/include/linux/compaction.h +++ b/include/linux/compaction.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _LINUX_COMPACTION_H | 1 | #ifndef _LINUX_COMPACTION_H |
2 | #define _LINUX_COMPACTION_H | 2 | #define _LINUX_COMPACTION_H |
3 | 3 | ||
4 | #include <linux/node.h> | ||
5 | |||
4 | /* Return values for compact_zone() and try_to_compact_pages() */ | 6 | /* Return values for compact_zone() and try_to_compact_pages() */ |
5 | /* compaction didn't start as it was not possible or direct reclaim was more suitable */ | 7 | /* compaction didn't start as it was not possible or direct reclaim was more suitable */ |
6 | #define COMPACT_SKIPPED 0 | 8 | #define COMPACT_SKIPPED 0 |
@@ -11,6 +13,23 @@ | |||
11 | /* The full zone was compacted */ | 13 | /* The full zone was compacted */ |
12 | #define COMPACT_COMPLETE 3 | 14 | #define COMPACT_COMPLETE 3 |
13 | 15 | ||
16 | /* | ||
17 | * compaction supports three modes | ||
18 | * | ||
19 | * COMPACT_ASYNC_MOVABLE uses asynchronous migration and only scans | ||
20 | * MIGRATE_MOVABLE pageblocks as migration sources and targets. | ||
21 | * COMPACT_ASYNC_UNMOVABLE uses asynchronous migration and only scans | ||
22 | * MIGRATE_MOVABLE pageblocks as migration sources. | ||
23 | * MIGRATE_UNMOVABLE pageblocks are scanned as potential migration | ||
24 | * targets and convers them to MIGRATE_MOVABLE if possible | ||
25 | * COMPACT_SYNC uses synchronous migration and scans all pageblocks | ||
26 | */ | ||
27 | enum compact_mode { | ||
28 | COMPACT_ASYNC_MOVABLE, | ||
29 | COMPACT_ASYNC_UNMOVABLE, | ||
30 | COMPACT_SYNC, | ||
31 | }; | ||
32 | |||
14 | #ifdef CONFIG_COMPACTION | 33 | #ifdef CONFIG_COMPACTION |
15 | extern int sysctl_compact_memory; | 34 | extern int sysctl_compact_memory; |
16 | extern int sysctl_compaction_handler(struct ctl_table *table, int write, | 35 | extern int sysctl_compaction_handler(struct ctl_table *table, int write, |