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>