Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755621Ab1DKLU7 (ORCPT ); Mon, 11 Apr 2011 07:20:59 -0400 Received: from mga09.intel.com ([134.134.136.24]:21956 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753554Ab1DKLU6 (ORCPT ); Mon, 11 Apr 2011 07:20:58 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.63,338,1299484800"; d="scan'208";a="731723533" Date: Mon, 11 Apr 2011 19:20:55 +0800 From: Wu Fengguang To: KOSAKI Motohiro Cc: LKML , linux-mm , Andrew Morton , Michael Rubin Subject: Re: [PATCH] mm: per-node vmstat show proper vmstats Message-ID: <20110411112055.GA19123@localhost> References: <20110411201015.F5BC.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110411201015.F5BC.A69D9226@jp.fujitsu.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3927 Lines: 146 > With this patch, the vmstat show all vm stastics as /proc/vmstat. Nice! It's good to see all the per-node vmstats, here are my numbers :) wfg@fat ~% cat /sys/devices/system/node/node0/vmstat nr_free_pages 67026 nr_inactive_anon 147 nr_active_anon 3697 nr_inactive_file 611711 nr_active_file 2291 nr_unevictable 0 nr_mlock 0 nr_anon_pages 3623 nr_mapped 2165 nr_file_pages 614269 nr_dirty 116123 nr_writeback 23596 nr_slab_reclaimable 25178 nr_slab_unreclaimable 6946 nr_page_table_pages 380 nr_kernel_stack 142 nr_unstable 0 nr_bounce 0 nr_vmscan_write 0 nr_writeback_temp 0 nr_isolated_anon 0 nr_isolated_file 0 nr_shmem 153 nr_dirtied 605215 nr_written 489092 numa_hit 1199939 numa_miss 0 numa_foreign 0 numa_interleave 7408 numa_local 1199939 numa_other 0 nr_anon_transparent_hugepages 0 Thanks, Fengguang On Mon, Apr 11, 2011 at 07:10:19PM +0800, KOSAKI Motohiro wrote: > commit 2ac390370a (writeback: add /sys/devices/system/node//vmstat) > added vmstat entry. But strangely it only show nr_written and nr_dirtied. > > # cat /sys/devices/system/node/node20/vmstat > nr_written 0 > nr_dirtied 0 > > Of cource, It's no adequate. With this patch, the vmstat show > all vm stastics as /proc/vmstat. > > # cat /sys/devices/system/node/node0/vmstat > nr_free_pages 899224 > nr_inactive_anon 201 > nr_active_anon 17380 > nr_inactive_file 31572 > nr_active_file 28277 > nr_unevictable 0 > nr_mlock 0 > nr_anon_pages 17321 > nr_mapped 8640 > nr_file_pages 60107 > nr_dirty 33 > nr_writeback 0 > nr_slab_reclaimable 6850 > nr_slab_unreclaimable 7604 > nr_page_table_pages 3105 > nr_kernel_stack 175 > nr_unstable 0 > nr_bounce 0 > nr_vmscan_write 0 > nr_writeback_temp 0 > nr_isolated_anon 0 > nr_isolated_file 0 > nr_shmem 260 > nr_dirtied 1050 > nr_written 938 > numa_hit 962872 > numa_miss 0 > numa_foreign 0 > numa_interleave 8617 > numa_local 962872 > numa_other 0 > nr_anon_transparent_hugepages 0 > > Signed-off-by: KOSAKI Motohiro > Cc: Michael Rubin > Cc: Wu Fengguang > --- > drivers/base/node.c | 15 ++++++++++----- > mm/vmstat.c | 2 +- > 2 files changed, 11 insertions(+), 6 deletions(-) > > diff --git a/drivers/base/node.c b/drivers/base/node.c > index b3b72d6..3fc5f28 100644 > --- a/drivers/base/node.c > +++ b/drivers/base/node.c > @@ -175,15 +175,20 @@ static ssize_t node_read_numastat(struct sys_device * dev, > } > static SYSDEV_ATTR(numastat, S_IRUGO, node_read_numastat, NULL); > > +extern const char * const vmstat_text[]; > + > static ssize_t node_read_vmstat(struct sys_device *dev, > struct sysdev_attribute *attr, char *buf) > { > int nid = dev->id; > - return sprintf(buf, > - "nr_written %lu\n" > - "nr_dirtied %lu\n", > - node_page_state(nid, NR_WRITTEN), > - node_page_state(nid, NR_DIRTIED)); > + int i; > + int n = 0; > + > + for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) > + n += sprintf(buf+n, "%s %lu\n", vmstat_text[i], > + node_page_state(nid, i)); > + > + return n; > } > static SYSDEV_ATTR(vmstat, S_IRUGO, node_read_vmstat, NULL); > > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 897ea9e..0000aad 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -852,7 +852,7 @@ static const struct file_operations pagetypeinfo_file_ops = { > #define TEXTS_FOR_ZONES(xx) TEXT_FOR_DMA(xx) TEXT_FOR_DMA32(xx) xx "_normal", \ > TEXT_FOR_HIGHMEM(xx) xx "_movable", > > -static const char * const vmstat_text[] = { > +const char * const vmstat_text[] = { > /* Zoned VM counters */ > "nr_free_pages", > "nr_inactive_anon", > -- > 1.7.3.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/