Index: linux-2.6.15-rc3/mm/rmap.c =================================================================== --- linux-2.6.15-rc3.orig/mm/rmap.c 2005-11-28 19:51:27.000000000 -0800 +++ linux-2.6.15-rc3/mm/rmap.c 2005-12-01 00:02:42.000000000 -0800 @@ -454,7 +454,7 @@ void page_add_anon_rmap(struct page *pag page->index = linear_page_index(vma, address); - inc_page_state(nr_mapped); + inc_node_page_state(page_to_nid(page), NR_MAPPED); } /* else checking page index and mapping is racy */ } @@ -471,7 +471,7 @@ void page_add_file_rmap(struct page *pag BUG_ON(!pfn_valid(page_to_pfn(page))); if (atomic_inc_and_test(&page->_mapcount)) - inc_page_state(nr_mapped); + inc_node_page_state(page_to_nid(page), NR_MAPPED); } /** @@ -495,7 +495,7 @@ void page_remove_rmap(struct page *page) */ if (page_test_and_clear_dirty(page)) set_page_dirty(page); - dec_page_state(nr_mapped); + dec_node_page_state(page_to_nid(page), NR_MAPPED); } } Index: linux-2.6.15-rc3/mm/swap_state.c =================================================================== --- linux-2.6.15-rc3.orig/mm/swap_state.c 2005-11-28 19:51:27.000000000 -0800 +++ linux-2.6.15-rc3/mm/swap_state.c 2005-12-01 00:02:42.000000000 -0800 @@ -85,6 +85,7 @@ static int __add_to_swap_cache(struct pa set_page_private(page, entry.val); total_swapcache_pages++; pagecache_acct(1); + inc_node_page_state(page_to_nid(page), NR_PAGECACHE); } write_unlock_irq(&swapper_space.tree_lock); radix_tree_preload_end(); @@ -130,6 +131,7 @@ void __delete_from_swap_cache(struct pag ClearPageSwapCache(page); total_swapcache_pages--; pagecache_acct(-1); + dec_node_page_state(page_to_nid(page), NR_PAGECACHE); INC_CACHE_INFO(del_total); } Index: linux-2.6.15-rc3/mm/filemap.c =================================================================== --- linux-2.6.15-rc3.orig/mm/filemap.c 2005-11-28 19:51:27.000000000 -0800 +++ linux-2.6.15-rc3/mm/filemap.c 2005-12-01 00:02:42.000000000 -0800 @@ -116,6 +116,7 @@ void __remove_from_page_cache(struct pag page->mapping = NULL; mapping->nrpages--; pagecache_acct(-1); + dec_node_page_state(page_to_nid(page), NR_PAGECACHE); } void remove_from_page_cache(struct page *page) @@ -391,6 +392,7 @@ int add_to_page_cache(struct page *page, page->index = offset; mapping->nrpages++; pagecache_acct(1); + inc_node_page_state(page_to_nid(page), NR_PAGECACHE); } write_unlock_irq(&mapping->tree_lock); radix_tree_preload_end(); Index: linux-2.6.15-rc3/include/linux/page-flags.h =================================================================== --- linux-2.6.15-rc3.orig/include/linux/page-flags.h 2005-11-30 23:59:47.000000000 -0800 +++ linux-2.6.15-rc3/include/linux/page-flags.h 2005-12-01 00:07:08.000000000 -0800 @@ -85,7 +85,6 @@ struct page_state { unsigned long nr_writeback; /* Pages under writeback */ unsigned long nr_unstable; /* NFS unstable pages */ unsigned long nr_page_table_pages;/* Pages used for pagetables */ - unsigned long nr_mapped; /* mapped into pagetables */ unsigned long nr_slab; /* In slab */ #define GET_PAGE_STATE_LAST nr_slab @@ -168,13 +167,13 @@ extern void __mod_page_state(unsigned lo enum node_stat_item { NR_PAGECACHE, NR_MAPPED }; #define NODE_STAT_ITEMS 2 -extern unsigned long global_stat[NODE_STAT_ITEMS]; -extern unsigned long node_stat[MAX_NUMNODES][NODE_STAT_ITEMS]; -extern int node_diff[NR_CPUS][MAX_NUMNODES][NODE_STAT_ITEMS]; +extern unsigned long vm_stat_global[NODE_STAT_ITEMS]; +extern unsigned long vm_stat_node[MAX_NUMNODES][NODE_STAT_ITEMS]; +extern int vm_stat_diff[NR_CPUS][MAX_NUMNODES][NODE_STAT_ITEMS]; static inline void mod_node_page_state(int node, enum node_stat_item item, int delta) { - node_diff[get_cpu()][node][item] += delta; + vm_stat_diff[get_cpu()][node][item] += delta; put_cpu(); } Index: linux-2.6.15-rc3/mm/page_alloc.c =================================================================== --- linux-2.6.15-rc3.orig/mm/page_alloc.c 2005-11-30 23:59:47.000000000 -0800 +++ linux-2.6.15-rc3/mm/page_alloc.c 2005-12-01 00:09:33.000000000 -0800 @@ -1400,7 +1400,7 @@ void show_free_areas(void) ps.nr_unstable, nr_free_pages(), ps.nr_slab, - ps.nr_mapped, + vm_stat_global[NR_MAPPED], ps.nr_page_table_pages); for_each_zone(zone) {