diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/mm_inline.h | 13 | ||||
-rw-r--r-- | include/linux/mmzone.h | 4 | ||||
-rw-r--r-- | include/linux/vmstat.h | 9 |
3 files changed, 17 insertions, 9 deletions
diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index 3b6723dfaff3..895bc4e93039 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h | |||
@@ -1,30 +1,29 @@ | |||
1 | |||
2 | static inline void | 1 | static inline void |
3 | add_page_to_active_list(struct zone *zone, struct page *page) | 2 | add_page_to_active_list(struct zone *zone, struct page *page) |
4 | { | 3 | { |
5 | list_add(&page->lru, &zone->active_list); | 4 | list_add(&page->lru, &zone->active_list); |
6 | zone->nr_active++; | 5 | __inc_zone_state(zone, NR_ACTIVE); |
7 | } | 6 | } |
8 | 7 | ||
9 | static inline void | 8 | static inline void |
10 | add_page_to_inactive_list(struct zone *zone, struct page *page) | 9 | add_page_to_inactive_list(struct zone *zone, struct page *page) |
11 | { | 10 | { |
12 | list_add(&page->lru, &zone->inactive_list); | 11 | list_add(&page->lru, &zone->inactive_list); |
13 | zone->nr_inactive++; | 12 | __inc_zone_state(zone, NR_INACTIVE); |
14 | } | 13 | } |
15 | 14 | ||
16 | static inline void | 15 | static inline void |
17 | del_page_from_active_list(struct zone *zone, struct page *page) | 16 | del_page_from_active_list(struct zone *zone, struct page *page) |
18 | { | 17 | { |
19 | list_del(&page->lru); | 18 | list_del(&page->lru); |
20 | zone->nr_active--; | 19 | __dec_zone_state(zone, NR_ACTIVE); |
21 | } | 20 | } |
22 | 21 | ||
23 | static inline void | 22 | static inline void |
24 | del_page_from_inactive_list(struct zone *zone, struct page *page) | 23 | del_page_from_inactive_list(struct zone *zone, struct page *page) |
25 | { | 24 | { |
26 | list_del(&page->lru); | 25 | list_del(&page->lru); |
27 | zone->nr_inactive--; | 26 | __dec_zone_state(zone, NR_INACTIVE); |
28 | } | 27 | } |
29 | 28 | ||
30 | static inline void | 29 | static inline void |
@@ -33,9 +32,9 @@ del_page_from_lru(struct zone *zone, struct page *page) | |||
33 | list_del(&page->lru); | 32 | list_del(&page->lru); |
34 | if (PageActive(page)) { | 33 | if (PageActive(page)) { |
35 | __ClearPageActive(page); | 34 | __ClearPageActive(page); |
36 | zone->nr_active--; | 35 | __dec_zone_state(zone, NR_ACTIVE); |
37 | } else { | 36 | } else { |
38 | zone->nr_inactive--; | 37 | __dec_zone_state(zone, NR_INACTIVE); |
39 | } | 38 | } |
40 | } | 39 | } |
41 | 40 | ||
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index b262f47961fb..9137d1b9735c 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -47,6 +47,8 @@ struct zone_padding { | |||
47 | #endif | 47 | #endif |
48 | 48 | ||
49 | enum zone_stat_item { | 49 | enum zone_stat_item { |
50 | NR_INACTIVE, | ||
51 | NR_ACTIVE, | ||
50 | NR_ANON_PAGES, /* Mapped anonymous pages */ | 52 | NR_ANON_PAGES, /* Mapped anonymous pages */ |
51 | NR_FILE_MAPPED, /* pagecache pages mapped into pagetables. | 53 | NR_FILE_MAPPED, /* pagecache pages mapped into pagetables. |
52 | only modified from process context */ | 54 | only modified from process context */ |
@@ -197,8 +199,6 @@ struct zone { | |||
197 | struct list_head inactive_list; | 199 | struct list_head inactive_list; |
198 | unsigned long nr_scan_active; | 200 | unsigned long nr_scan_active; |
199 | unsigned long nr_scan_inactive; | 201 | unsigned long nr_scan_inactive; |
200 | unsigned long nr_active; | ||
201 | unsigned long nr_inactive; | ||
202 | unsigned long pages_scanned; /* since last reclaim */ | 202 | unsigned long pages_scanned; /* since last reclaim */ |
203 | int all_unreclaimable; /* All pages pinned */ | 203 | int all_unreclaimable; /* All pages pinned */ |
204 | 204 | ||
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 5e9803ed17fc..c8d55bcc09b9 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h | |||
@@ -186,6 +186,9 @@ void inc_zone_page_state(struct page *, enum zone_stat_item); | |||
186 | void dec_zone_page_state(struct page *, enum zone_stat_item); | 186 | void dec_zone_page_state(struct page *, enum zone_stat_item); |
187 | 187 | ||
188 | extern void inc_zone_state(struct zone *, enum zone_stat_item); | 188 | extern void inc_zone_state(struct zone *, enum zone_stat_item); |
189 | extern void __inc_zone_state(struct zone *, enum zone_stat_item); | ||
190 | extern void dec_zone_state(struct zone *, enum zone_stat_item); | ||
191 | extern void __dec_zone_state(struct zone *, enum zone_stat_item); | ||
189 | 192 | ||
190 | void refresh_cpu_vm_stats(int); | 193 | void refresh_cpu_vm_stats(int); |
191 | void refresh_vm_stats(void); | 194 | void refresh_vm_stats(void); |
@@ -214,6 +217,12 @@ static inline void __inc_zone_page_state(struct page *page, | |||
214 | __inc_zone_state(page_zone(page), item); | 217 | __inc_zone_state(page_zone(page), item); |
215 | } | 218 | } |
216 | 219 | ||
220 | static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) | ||
221 | { | ||
222 | atomic_long_dec(&zone->vm_stat[item]); | ||
223 | atomic_long_dec(&vm_stat[item]); | ||
224 | } | ||
225 | |||
217 | static inline void __dec_zone_page_state(struct page *page, | 226 | static inline void __dec_zone_page_state(struct page *page, |
218 | enum zone_stat_item item) | 227 | enum zone_stat_item item) |
219 | { | 228 | { |