From owner-cvs-all Thu Apr 4 13:39:12 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 96FEF37B431; Thu, 4 Apr 2002 13:38:47 -0800 (PST) Received: (from dillon@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g34Lclm58800; Thu, 4 Apr 2002 13:38:47 -0800 (PST) (envelope-from dillon) Message-Id: <200204042138.g34Lclm58800@freefall.freebsd.org> From: Matt Dillon Date: Thu, 4 Apr 2002 13:38:47 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 trap.c src/sys/sys pcpu.h src/sys/vm vm_meter.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG dillon 2002/04/04 13:38:47 PST Modified files: sys/i386/i386 trap.c sys/sys pcpu.h sys/vm vm_meter.c Log: Embed a struct vmmeter in the per-cpu structure and add a macro, PCPU_LAZY_INC() which increments elements in it for cases where we can afford the occassional inaccuracy. Use of per-cpu stats counters avoids significant cache stalls in various critical paths that would otherwise severely limit our cpu scaleability. Adjust all sysctl's accessing cnt.* elements to now use a procedure which aggregates the requested field for all cpus and for the global vmmeter. The global vmmeter is retained, since some stats counters, like v_free_min, cannot be made per-cpu. Also, this allows us to convert counters from the global vmmeter to the per-cpu vmmeter in a piecemeal fashion, so have at it! Revision Changes Path 1.221 +5 -1 src/sys/i386/i386/trap.c 1.8 +17 -0 src/sys/sys/pcpu.h 1.62 +129 -96 src/sys/vm/vm_meter.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message