Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jul 2006 18:13:32 +0200
From:      Michal Mertl <mime@traveller.cz>
To:        Peter Jeremy <peterjeremy@optushome.com.au>
Cc:        freebsd-current@freebsd.org, Brian Candler <B.Candler@pobox.com>
Subject:   Re: vmstat's entries type
Message-ID:  <1154189612.1565.10.camel@genius.i.cz>
In-Reply-To: <20060728210154.GC748@turion.vk2pj.dyndns.org>
References:  <200607251254.k6PCsBef092737@lurza.secnetix.de> <200607271058.13055.jhb@freebsd.org> <20060728121525.GA44917@uk.tiscali.com> <200607280928.36573.jhb@freebsd.org> <20060728134701.GA45273@uk.tiscali.com> <20060728210154.GC748@turion.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Jeremy wrote:
> On Fri, 2006-Jul-28 14:47:01 +0100, Brian Candler wrote:
> >On Fri, Jul 28, 2006 at 09:28:36AM -0400, John Baldwin wrote:

> In a MP configuration where it doesn't particularly matter if a
> particular update gets counted this time or next time, I think the
> cheapest option is to have per-CPU 32-bit counters (so no locks are
> needed to update the counters) with a polling function to accumulate
> all the individual counters into a 64-bit total.  This pushes the cost
> from the update (very frequent) into the read (which is relatively
> infrequent), for a lower overall cost.

What you describe has already been there for some time.

>From sys/sys/pcpu.h

#define PCPU_LAZY_INC(var)      (++*PCPU_PTR(var))

and function vcnt from sys/vm/vm_meter.c


Michal




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1154189612.1565.10.camel>