From b014267fbe13f62ba2f49ce2242901e9e47804cd Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Fri, 30 Jun 2006 01:55:36 -0700 Subject: [PATCH] --- yaml --- r: 31375 b: refs/heads/master c: f3dbd34460ff54962d3e3244b6bcb7f5295356e6 h: refs/heads/master i: 31373: 0c8fd77310b2e7c3a7db0718c25ce1d890258b59 31371: 40803ae5347bcd55baf1a5185dee0a87ee9c27cd 31367: bec38bfb66aff08704f1ba4b62544cdeaea294f9 31359: 9c7820f33c2d4629aba9888dc84cc416cee15935 v: v3 --- [refs] | 2 +- trunk/drivers/base/node.c | 2 ++ trunk/fs/proc/proc_misc.c | 2 ++ trunk/include/linux/mmzone.h | 3 ++- trunk/mm/page-writeback.c | 3 ++- trunk/mm/rmap.c | 5 +++-- trunk/mm/vmscan.c | 3 ++- trunk/mm/vmstat.c | 1 + 8 files changed, 15 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 5a1eccb12739..95f814a365b7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bf02cf4b6cf931d060ad5c6ce9b960af6faefd2d +refs/heads/master: f3dbd34460ff54962d3e3244b6bcb7f5295356e6 diff --git a/trunk/drivers/base/node.c b/trunk/drivers/base/node.c index ae9e3fea4b31..c3bf05158c6d 100644 --- a/trunk/drivers/base/node.c +++ b/trunk/drivers/base/node.c @@ -71,6 +71,7 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf) "Node %d Writeback: %8lu kB\n" "Node %d FilePages: %8lu kB\n" "Node %d Mapped: %8lu kB\n" + "Node %d AnonPages: %8lu kB\n" "Node %d Slab: %8lu kB\n", nid, K(i.totalram), nid, K(i.freeram), @@ -85,6 +86,7 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf) nid, K(ps.nr_writeback), nid, K(node_page_state(nid, NR_FILE_PAGES)), nid, K(node_page_state(nid, NR_FILE_MAPPED)), + nid, K(node_page_state(nid, NR_ANON_PAGES)), nid, K(ps.nr_slab)); n += hugetlb_report_node_meminfo(nid, buf + n); return n; diff --git a/trunk/fs/proc/proc_misc.c b/trunk/fs/proc/proc_misc.c index 1af12fd77fe6..ff809656ce31 100644 --- a/trunk/fs/proc/proc_misc.c +++ b/trunk/fs/proc/proc_misc.c @@ -168,6 +168,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off, "SwapFree: %8lu kB\n" "Dirty: %8lu kB\n" "Writeback: %8lu kB\n" + "AnonPages: %8lu kB\n" "Mapped: %8lu kB\n" "Slab: %8lu kB\n" "CommitLimit: %8lu kB\n" @@ -191,6 +192,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off, K(i.freeswap), K(ps.nr_dirty), K(ps.nr_writeback), + K(global_page_state(NR_ANON_PAGES)), K(global_page_state(NR_FILE_MAPPED)), K(ps.nr_slab), K(allowed), diff --git a/trunk/include/linux/mmzone.h b/trunk/include/linux/mmzone.h index 08be91e6cecf..4833abd4458b 100644 --- a/trunk/include/linux/mmzone.h +++ b/trunk/include/linux/mmzone.h @@ -47,7 +47,8 @@ struct zone_padding { #endif enum zone_stat_item { - NR_FILE_MAPPED, /* mapped into pagetables. + NR_ANON_PAGES, /* Mapped anonymous pages */ + NR_FILE_MAPPED, /* pagecache pages mapped into pagetables. only modified from process context */ NR_FILE_PAGES, NR_VM_ZONE_STAT_ITEMS }; diff --git a/trunk/mm/page-writeback.c b/trunk/mm/page-writeback.c index 60c7244c42e4..0faacfe18909 100644 --- a/trunk/mm/page-writeback.c +++ b/trunk/mm/page-writeback.c @@ -111,7 +111,8 @@ static void get_writeback_state(struct writeback_state *wbs) { wbs->nr_dirty = read_page_state(nr_dirty); wbs->nr_unstable = read_page_state(nr_unstable); - wbs->nr_mapped = global_page_state(NR_FILE_MAPPED); + wbs->nr_mapped = global_page_state(NR_FILE_MAPPED) + + global_page_state(NR_ANON_PAGES); wbs->nr_writeback = read_page_state(nr_writeback); } diff --git a/trunk/mm/rmap.c b/trunk/mm/rmap.c index af5e9808e65d..40158b59729e 100644 --- a/trunk/mm/rmap.c +++ b/trunk/mm/rmap.c @@ -455,7 +455,7 @@ static void __page_set_anon_rmap(struct page *page, * nr_mapped state can be updated without turning off * interrupts because it is not modified via interrupt. */ - __inc_zone_page_state(page, NR_FILE_MAPPED); + __inc_zone_page_state(page, NR_ANON_PAGES); } /** @@ -531,7 +531,8 @@ void page_remove_rmap(struct page *page) */ if (page_test_and_clear_dirty(page)) set_page_dirty(page); - __dec_zone_page_state(page, NR_FILE_MAPPED); + __dec_zone_page_state(page, + PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); } } diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 08bc54e80862..2f0390161c0e 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -742,7 +742,8 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, * how much memory * is mapped. */ - mapped_ratio = (global_page_state(NR_FILE_MAPPED) * 100) / + mapped_ratio = ((global_page_state(NR_FILE_MAPPED) + + global_page_state(NR_ANON_PAGES)) * 100) / vm_total_pages; /* diff --git a/trunk/mm/vmstat.c b/trunk/mm/vmstat.c index f16b33eb6d5c..3baf4dffa62a 100644 --- a/trunk/mm/vmstat.c +++ b/trunk/mm/vmstat.c @@ -395,6 +395,7 @@ struct seq_operations fragmentation_op = { static char *vmstat_text[] = { /* Zoned VM counters */ + "nr_anon_pages", "nr_mapped", "nr_file_pages",