Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce866b34 authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds
Browse files

[PATCH] zoned vm counters: conversion of nr_writeback to per zone counter



Conversion of nr_writeback to per zone counter.

This removes the last page_state counter from arch/i386/mm/pgtable.c so we
drop the page_state from there.

[akpm@osdl.org: bugfix]
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent b1e7a8fd
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ void show_mem(void)
	struct page *page;
	pg_data_t *pgdat;
	unsigned long i;
	struct page_state ps;
	unsigned long flags;

	printk(KERN_INFO "Mem-info:\n");
@@ -58,9 +57,9 @@ void show_mem(void)
	printk(KERN_INFO "%d pages shared\n", shared);
	printk(KERN_INFO "%d pages swap cached\n", cached);

	get_page_state(&ps);
	printk(KERN_INFO "%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
	printk(KERN_INFO "%lu pages writeback\n", ps.nr_writeback);
	printk(KERN_INFO "%lu pages writeback\n",
					global_page_state(NR_WRITEBACK));
	printk(KERN_INFO "%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
	printk(KERN_INFO "%lu pages slab\n", global_page_state(NR_SLAB));
	printk(KERN_INFO "%lu pages pagetables\n",
+1 −4
Original line number Diff line number Diff line
@@ -49,9 +49,6 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf)
	get_page_state_node(&ps, nid);
	__get_zone_counts(&active, &inactive, &free, NODE_DATA(nid));

	/* Check for negative values in these approximate counters */
	if ((long)ps.nr_writeback < 0)
		ps.nr_writeback = 0;

	n = sprintf(buf, "\n"
		       "Node %d MemTotal:     %8lu kB\n"
@@ -80,7 +77,7 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf)
		       nid, K(i.totalram - i.totalhigh),
		       nid, K(i.freeram - i.freehigh),
		       nid, K(node_page_state(nid, NR_FILE_DIRTY)),
		       nid, K(ps.nr_writeback),
		       nid, K(node_page_state(nid, 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)),
+1 −1
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
		K(i.totalswap),
		K(i.freeswap),
		K(global_page_state(NR_FILE_DIRTY)),
		K(ps.nr_writeback),
		K(global_page_state(NR_WRITEBACK)),
		K(global_page_state(NR_ANON_PAGES)),
		K(global_page_state(NR_FILE_MAPPED)),
		K(global_page_state(NR_SLAB)),
+1 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ enum zone_stat_item {
	NR_SLAB,	/* Pages used by slab allocator */
	NR_PAGETABLE,	/* used for pagetables */
	NR_FILE_DIRTY,
	NR_WRITEBACK,
	NR_VM_ZONE_STAT_ITEMS };

struct per_cpu_pages {
+4 −4
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@
	do {								\
		if (!test_and_set_bit(PG_writeback,			\
				&(page)->flags))			\
			inc_page_state(nr_writeback);			\
			inc_zone_page_state(page, NR_WRITEBACK);	\
	} while (0)
#define TestSetPageWriteback(page)					\
	({								\
@@ -189,14 +189,14 @@
		ret = test_and_set_bit(PG_writeback,			\
					&(page)->flags);		\
		if (!ret)						\
			inc_page_state(nr_writeback);			\
			inc_zone_page_state(page, NR_WRITEBACK);	\
		ret;							\
	})
#define ClearPageWriteback(page)					\
	do {								\
		if (test_and_clear_bit(PG_writeback,			\
				&(page)->flags))			\
			dec_page_state(nr_writeback);			\
			dec_zone_page_state(page, NR_WRITEBACK);	\
	} while (0)
#define TestClearPageWriteback(page)					\
	({								\
@@ -204,7 +204,7 @@
		ret = test_and_clear_bit(PG_writeback,			\
				&(page)->flags);			\
		if (ret)						\
			dec_page_state(nr_writeback);			\
			dec_zone_page_state(page, NR_WRITEBACK);	\
		ret;							\
	})

Loading