svn commit: r237656 - in head: contrib/top usr.bin/top
John Baldwin
jhb at freebsd.org
Wed Oct 17 18:46:14 UTC 2012
On Wednesday, October 17, 2012 11:04:47 am Nikolay Denev wrote:
> On Jun 27, 2012, at 9:08 PM, John Baldwin <jhb at freebsd.org> wrote:
>
> > Author: jhb
> > Date: Wed Jun 27 18:08:48 2012
> > New Revision: 237656
> > URL: http://svn.freebsd.org/changeset/base/237656
> >
> > Log:
> > Add a new line to top that provides a brief summary of the ZFS ARC memory
> > usage on hosts using ZFS. The new line displays the total amount of RAM
> > used by the ARC along with the size of MFU, MRU, anonymous (in flight),
> > headers, and other (miscellaneous) sub-categories. The line is not
> > displayed on systems that are not using ZFS.
> >
> > Reviewed by: avg, fs@
> > MFC after: 3 days
> >
> > Modified:
> > head/contrib/top/display.c
> > head/contrib/top/layout.h
> > head/contrib/top/machine.h
> > head/contrib/top/top.c
> > head/usr.bin/top/machine.c
> > head/usr.bin/top/top.local.1
> >
> >
> > Modified: head/usr.bin/top/machine.c
> >
==============================================================================
> > --- head/usr.bin/top/machine.c Wed Jun 27 17:51:09 2012 (r237655)
> > +++ head/usr.bin/top/machine.c Wed Jun 27 18:08:48 2012 (r237656)
> > @@ -176,6 +176,12 @@ char *memorynames[] = {
> > "K Free", NULL
> > };
> >
> > +int arc_stats[7];
> > +char *arcnames[] = {
> > + "K Total, ", "K MRU, ", "K MFU, ", "K Anon, ", "K Header, ", "K
Other",
> > + NULL
> > +};
> > +
> >
> > + if (arc_enabled) {
> > + GETSYSCTL("kstat.zfs.misc.arcstats.size", arc_stat);
> > + arc_stats[0] = arc_stat >> 10;
> > + GETSYSCTL("vfs.zfs.mfu_size", arc_stat);
> > + arc_stats[1] = arc_stat >> 10;
> > + GETSYSCTL("vfs.zfs.mru_size", arc_stat);
> > + arc_stats[2] = arc_stat >> 10;
> > + GETSYSCTL("vfs.zfs.anon_size", arc_stat);
> > + arc_stats[3] = arc_stat >> 10;
> > + GETSYSCTL("kstat.zfs.misc.arcstats.hdr_size", arc_stat);
> > + GETSYSCTL("kstat.zfs.misc.arcstats.l2_hdr_size", arc_stat2);
> > + arc_stats[4] = arc_stat + arc_stat2 >> 10;
> > + GETSYSCTL("kstat.zfs.misc.arcstats.other_size", arc_stat);
> > + arc_stats[5] = arc_stat >> 10;
> > + si->arc = arc_stats;
> > + }
> > +
>
>
> Hi,
>
> It looks like MFU and MRU are swapped in top's display.
>
> I'm using this to correct the output:
>
> --- /usr/src/.zfs/snapshot/patches/usr.bin/top/machine.c 2012-09-26
08:20:26.000000000 +0200
> +++ usr.bin/top/machine.c 2012-10-17 17:00:14.988895167 +0200
> @@ -515,9 +515,9 @@
> if (arc_enabled) {
> GETSYSCTL("kstat.zfs.misc.arcstats.size", arc_stat);
> arc_stats[0] = arc_stat >> 10;
> - GETSYSCTL("vfs.zfs.mfu_size", arc_stat);
> - arc_stats[1] = arc_stat >> 10;
> GETSYSCTL("vfs.zfs.mru_size", arc_stat);
> + arc_stats[1] = arc_stat >> 10;
> + GETSYSCTL("vfs.zfs.mfu_size", arc_stat);
> arc_stats[2] = arc_stat >> 10;
> GETSYSCTL("vfs.zfs.anon_size", arc_stat);
> arc_stats[3] = arc_stat >> 10;
Doh! Good catch! I think I'd rather swap the display order so MFU is listed
before MRU (alphabetical order).
--
John Baldwin
More information about the svn-src-head
mailing list