aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-06-30 04:55:34 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-30 14:25:34 -0400
commit65ba55f500a37272985d071c9bbb35256a2f7c14 (patch)
treee7735326ef2d2dca9d00a6c5ae47e9eb03c7834f /include/linux
parent2244b95a7bcf8d24196f8a3a44187ba5dfff754c (diff)
[PATCH] zoned vm counters: convert nr_mapped to per zone counter
nr_mapped is important because it allows a determination of how many pages of a zone are not mapped, which would allow a more efficient means of determining when we need to reclaim memory in a zone. We take the nr_mapped field out of the page state structure and define a new per zone counter named NR_FILE_MAPPED (the anonymous pages will be split off from NR_MAPPED in the next patch). We replace the use of nr_mapped in various kernel locations. This avoids the looping over all processors in try_to_free_pages(), writeback, reclaim (swap + zone reclaim). [akpm@osdl.org: bugfix] 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 'include/linux')
-rw-r--r--include/linux/mmzone.h3
-rw-r--r--include/linux/vmstat.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 543f9e411563..eb42c1277023 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -47,6 +47,9 @@ struct zone_padding {
47#endif 47#endif
48 48
49enum zone_stat_item { 49enum zone_stat_item {
50 NR_FILE_MAPPED, /* mapped into pagetables.
51 only modified from process context */
52
50 NR_VM_ZONE_STAT_ITEMS }; 53 NR_VM_ZONE_STAT_ITEMS };
51 54
52struct per_cpu_pages { 55struct per_cpu_pages {
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index 3fd5c11e544a..8ab8229523e6 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -26,8 +26,6 @@ struct page_state {
26 unsigned long nr_writeback; /* Pages under writeback */ 26 unsigned long nr_writeback; /* Pages under writeback */
27 unsigned long nr_unstable; /* NFS unstable pages */ 27 unsigned long nr_unstable; /* NFS unstable pages */
28 unsigned long nr_page_table_pages;/* Pages used for pagetables */ 28 unsigned long nr_page_table_pages;/* Pages used for pagetables */
29 unsigned long nr_mapped; /* mapped into pagetables.
30 * only modified from process context */
31 unsigned long nr_slab; /* In slab */ 29 unsigned long nr_slab; /* In slab */
32#define GET_PAGE_STATE_LAST nr_slab 30#define GET_PAGE_STATE_LAST nr_slab
33 31