aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-06-30 04:55:40 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-30 14:25:36 -0400
commitfd39fc8561be33065306bdac0e30414e1e8ac8e1 (patch)
treeae0740716eed3f850a8f7232c61caebe360bb5ae /mm
parentce866b34ae1b7f1ce60234cf65855886ac7e7d30 (diff)
[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter
Conversion of nr_unstable to a per zone counter We need to do some special modifications to the nfs code since there are multiple cases of disposition and we need to have a page ref for proper accounting. This converts the last critical page state of the VM and therefore we need to remove several functions that were depending on GET_PAGE_STATE_LAST in order to make the kernel compile again. We are only left with event type counters in page state. [akpm@osdl.org: bugfixes] Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/page-writeback.c2
-rw-r--r--mm/page_alloc.c4
-rw-r--r--mm/vmstat.c25
3 files changed, 3 insertions, 28 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 3cfdff4b1985..de9836f43db5 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -110,7 +110,7 @@ struct writeback_state
110static void get_writeback_state(struct writeback_state *wbs) 110static void get_writeback_state(struct writeback_state *wbs)
111{ 111{
112 wbs->nr_dirty = global_page_state(NR_FILE_DIRTY); 112 wbs->nr_dirty = global_page_state(NR_FILE_DIRTY);
113 wbs->nr_unstable = read_page_state(nr_unstable); 113 wbs->nr_unstable = global_page_state(NR_UNSTABLE_NFS);
114 wbs->nr_mapped = global_page_state(NR_FILE_MAPPED) + 114 wbs->nr_mapped = global_page_state(NR_FILE_MAPPED) +
115 global_page_state(NR_ANON_PAGES); 115 global_page_state(NR_ANON_PAGES);
116 wbs->nr_writeback = global_page_state(NR_WRITEBACK); 116 wbs->nr_writeback = global_page_state(NR_WRITEBACK);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a12e894a8bca..6aa2c31f513b 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1271,7 +1271,6 @@ void si_meminfo_node(struct sysinfo *val, int nid)
1271 */ 1271 */
1272void show_free_areas(void) 1272void show_free_areas(void)
1273{ 1273{
1274 struct page_state ps;
1275 int cpu, temperature; 1274 int cpu, temperature;
1276 unsigned long active; 1275 unsigned long active;
1277 unsigned long inactive; 1276 unsigned long inactive;
@@ -1303,7 +1302,6 @@ void show_free_areas(void)
1303 } 1302 }
1304 } 1303 }
1305 1304
1306 get_page_state(&ps);
1307 get_zone_counts(&active, &inactive, &free); 1305 get_zone_counts(&active, &inactive, &free);
1308 1306
1309 printk("Free pages: %11ukB (%ukB HighMem)\n", 1307 printk("Free pages: %11ukB (%ukB HighMem)\n",
@@ -1316,7 +1314,7 @@ void show_free_areas(void)
1316 inactive, 1314 inactive,
1317 global_page_state(NR_FILE_DIRTY), 1315 global_page_state(NR_FILE_DIRTY),
1318 global_page_state(NR_WRITEBACK), 1316 global_page_state(NR_WRITEBACK),
1319 ps.nr_unstable, 1317 global_page_state(NR_UNSTABLE_NFS),
1320 nr_free_pages(), 1318 nr_free_pages(),
1321 global_page_state(NR_SLAB), 1319 global_page_state(NR_SLAB),
1322 global_page_state(NR_FILE_MAPPED), 1320 global_page_state(NR_FILE_MAPPED),
diff --git a/mm/vmstat.c b/mm/vmstat.c
index e84c7e520a1d..9dc270aed5c4 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -45,28 +45,6 @@ static void __get_page_state(struct page_state *ret, int nr, cpumask_t *cpumask)
45 } 45 }
46} 46}
47 47
48void get_page_state_node(struct page_state *ret, int node)
49{
50 int nr;
51 cpumask_t mask = node_to_cpumask(node);
52
53 nr = offsetof(struct page_state, GET_PAGE_STATE_LAST);
54 nr /= sizeof(unsigned long);
55
56 __get_page_state(ret, nr+1, &mask);
57}
58
59void get_page_state(struct page_state *ret)
60{
61 int nr;
62 cpumask_t mask = CPU_MASK_ALL;
63
64 nr = offsetof(struct page_state, GET_PAGE_STATE_LAST);
65 nr /= sizeof(unsigned long);
66
67 __get_page_state(ret, nr + 1, &mask);
68}
69
70void get_full_page_state(struct page_state *ret) 48void get_full_page_state(struct page_state *ret)
71{ 49{
72 cpumask_t mask = CPU_MASK_ALL; 50 cpumask_t mask = CPU_MASK_ALL;
@@ -402,10 +380,9 @@ static char *vmstat_text[] = {
402 "nr_page_table_pages", 380 "nr_page_table_pages",
403 "nr_dirty", 381 "nr_dirty",
404 "nr_writeback", 382 "nr_writeback",
405
406 /* Page state */
407 "nr_unstable", 383 "nr_unstable",
408 384
385 /* Event counters */
409 "pgpgin", 386 "pgpgin",
410 "pgpgout", 387 "pgpgout",
411 "pswpin", 388 "pswpin",