diff options
Diffstat (limited to 'include/linux')
| -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, |
