diff options
Diffstat (limited to 'include/linux/mmzone.h')
| -rw-r--r-- | include/linux/mmzone.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 889598537370..6f7561730d88 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #define MIGRATE_UNMOVABLE 0 | 38 | #define MIGRATE_UNMOVABLE 0 |
| 39 | #define MIGRATE_RECLAIMABLE 1 | 39 | #define MIGRATE_RECLAIMABLE 1 |
| 40 | #define MIGRATE_MOVABLE 2 | 40 | #define MIGRATE_MOVABLE 2 |
| 41 | #define MIGRATE_PCPTYPES 3 /* the number of types on the pcp lists */ | ||
| 41 | #define MIGRATE_RESERVE 3 | 42 | #define MIGRATE_RESERVE 3 |
| 42 | #define MIGRATE_ISOLATE 4 /* can't allocate from here */ | 43 | #define MIGRATE_ISOLATE 4 /* can't allocate from here */ |
| 43 | #define MIGRATE_TYPES 5 | 44 | #define MIGRATE_TYPES 5 |
| @@ -94,11 +95,15 @@ enum zone_stat_item { | |||
| 94 | NR_SLAB_RECLAIMABLE, | 95 | NR_SLAB_RECLAIMABLE, |
| 95 | NR_SLAB_UNRECLAIMABLE, | 96 | NR_SLAB_UNRECLAIMABLE, |
| 96 | NR_PAGETABLE, /* used for pagetables */ | 97 | NR_PAGETABLE, /* used for pagetables */ |
| 98 | NR_KERNEL_STACK, | ||
| 99 | /* Second 128 byte cacheline */ | ||
| 97 | NR_UNSTABLE_NFS, /* NFS unstable pages */ | 100 | NR_UNSTABLE_NFS, /* NFS unstable pages */ |
| 98 | NR_BOUNCE, | 101 | NR_BOUNCE, |
| 99 | NR_VMSCAN_WRITE, | 102 | NR_VMSCAN_WRITE, |
| 100 | /* Second 128 byte cacheline */ | ||
| 101 | NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ | 103 | NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ |
| 104 | NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ | ||
| 105 | NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ | ||
| 106 | NR_SHMEM, /* shmem pages (included tmpfs/GEM pages) */ | ||
| 102 | #ifdef CONFIG_NUMA | 107 | #ifdef CONFIG_NUMA |
| 103 | NUMA_HIT, /* allocated in intended node */ | 108 | NUMA_HIT, /* allocated in intended node */ |
| 104 | NUMA_MISS, /* allocated in non intended node */ | 109 | NUMA_MISS, /* allocated in non intended node */ |
| @@ -165,7 +170,9 @@ struct per_cpu_pages { | |||
| 165 | int count; /* number of pages in the list */ | 170 | int count; /* number of pages in the list */ |
| 166 | int high; /* high watermark, emptying needed */ | 171 | int high; /* high watermark, emptying needed */ |
| 167 | int batch; /* chunk size for buddy add/remove */ | 172 | int batch; /* chunk size for buddy add/remove */ |
| 168 | struct list_head list; /* the list of pages */ | 173 | |
| 174 | /* Lists of pages, one per migrate type stored on the pcp-lists */ | ||
| 175 | struct list_head lists[MIGRATE_PCPTYPES]; | ||
| 169 | }; | 176 | }; |
| 170 | 177 | ||
| 171 | struct per_cpu_pageset { | 178 | struct per_cpu_pageset { |
| @@ -269,6 +276,11 @@ struct zone_reclaim_stat { | |||
| 269 | */ | 276 | */ |
| 270 | unsigned long recent_rotated[2]; | 277 | unsigned long recent_rotated[2]; |
| 271 | unsigned long recent_scanned[2]; | 278 | unsigned long recent_scanned[2]; |
| 279 | |||
| 280 | /* | ||
| 281 | * accumulated for batching | ||
| 282 | */ | ||
| 283 | unsigned long nr_saved_scan[NR_LRU_LISTS]; | ||
| 272 | }; | 284 | }; |
| 273 | 285 | ||
| 274 | struct zone { | 286 | struct zone { |
| @@ -323,7 +335,6 @@ struct zone { | |||
| 323 | spinlock_t lru_lock; | 335 | spinlock_t lru_lock; |
| 324 | struct zone_lru { | 336 | struct zone_lru { |
| 325 | struct list_head list; | 337 | struct list_head list; |
| 326 | unsigned long nr_saved_scan; /* accumulated for batching */ | ||
| 327 | } lru[NR_LRU_LISTS]; | 338 | } lru[NR_LRU_LISTS]; |
| 328 | 339 | ||
| 329 | struct zone_reclaim_stat reclaim_stat; | 340 | struct zone_reclaim_stat reclaim_stat; |
| @@ -744,21 +755,20 @@ static inline int is_dma(struct zone *zone) | |||
| 744 | 755 | ||
| 745 | /* These two functions are used to setup the per zone pages min values */ | 756 | /* These two functions are used to setup the per zone pages min values */ |
| 746 | struct ctl_table; | 757 | struct ctl_table; |
| 747 | struct file; | 758 | int min_free_kbytes_sysctl_handler(struct ctl_table *, int, |
| 748 | int min_free_kbytes_sysctl_handler(struct ctl_table *, int, struct file *, | ||
| 749 | void __user *, size_t *, loff_t *); | 759 | void __user *, size_t *, loff_t *); |
| 750 | extern int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1]; | 760 | extern int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1]; |
| 751 | int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *, | 761 | int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, |
| 752 | void __user *, size_t *, loff_t *); | 762 | void __user *, size_t *, loff_t *); |
| 753 | int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, struct file *, | 763 | int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, |
| 754 | void __user *, size_t *, loff_t *); | 764 | void __user *, size_t *, loff_t *); |
| 755 | int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, | 765 | int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, |
| 756 | struct file *, void __user *, size_t *, loff_t *); | 766 | void __user *, size_t *, loff_t *); |
| 757 | int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int, | 767 | int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int, |
| 758 | struct file *, void __user *, size_t *, loff_t *); | 768 | void __user *, size_t *, loff_t *); |
| 759 | 769 | ||
| 760 | extern int numa_zonelist_order_handler(struct ctl_table *, int, | 770 | extern int numa_zonelist_order_handler(struct ctl_table *, int, |
| 761 | struct file *, void __user *, size_t *, loff_t *); | 771 | void __user *, size_t *, loff_t *); |
| 762 | extern char numa_zonelist_order[]; | 772 | extern char numa_zonelist_order[]; |
| 763 | #define NUMA_ZONELIST_ORDER_LEN 16 /* string buffer size */ | 773 | #define NUMA_ZONELIST_ORDER_LEN 16 /* string buffer size */ |
| 764 | 774 | ||
