From owner-freebsd-smp Thu Apr 4 13:51: 2 2002 Delivered-To: freebsd-smp@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 1001237B41A; Thu, 4 Apr 2002 13:50:58 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g34LovP40157; Thu, 4 Apr 2002 13:50:57 -0800 (PST) (envelope-from dillon) Date: Thu, 4 Apr 2002 13:50:57 -0800 (PST) From: Matthew Dillon Message-Id: <200204042150.g34LovP40157@apollo.backplane.com> To: Jake Burkholder , John Baldwin , freebsd-smp@FreeBSD.ORG Subject: per-cpu stats counter support comitted. References: <200203292305.g2TN5nX75021@apollo.backplane.com> <20020330001929.H40695@locore.ca> <200203301920.g2UJKxL80198@apollo.backplane.com> Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Ok guys, I've comitted the work. This combined with the commit Bruce just made to the userret()/ast() code removes all memory/cache stalls from the syscall critical path. two-process getuid() tests, SMP build: per-process getuid()/sec ++cnt.v_syscall 853000 PCPU_LAZY_INC(cnt.v_syscall) 1000000 +17.2% PCPU + Bruce's userret() code 1238216 +23.8% Total boost: +45%. This is a significant improvement, folks! In anycase, please feel free to convert other vmeter counters from atomic_add_int() to PCPU_LAZY_INC(). Remember, not all counters can be converted... things like cnt.v_free_min, for example, cannot be converted because the VM system needs to get at the value quickly. Check before you change. We should probably split out the statistics that cannot be made per-cpu. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message