From owner-cvs-all Mon Feb 18 9:15:26 2002 Delivered-To: cvs-all@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 50C1B37B400; Mon, 18 Feb 2002 09:15:16 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g1IHFGU15223; Mon, 18 Feb 2002 09:15:16 -0800 (PST) (envelope-from dillon) Date: Mon, 18 Feb 2002 09:15:16 -0800 (PST) From: Matthew Dillon Message-Id: <200202181715.g1IHFGU15223@apollo.backplane.com> To: Robert Watson Cc: Poul-Henning Kamp , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/kern kern_time.c References: 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 :Weee. This might actually give an observable performance improvement for :applications such as Apache, or those with event loops. Any chance you :want to do a quick micro-benchmark? : :(Question: is this the first observable performance improvement form :SMPng? :-) : :Robert N M Watson FreeBSD Core Team, TrustedBSD Project :robert@fledge.watson.org NAI Labs, Safeport Network Services That's what those gettimeofday() benchmarks I posted were testing. In anycase, some of the simpler system calls are already out from under giant, like getpagesize(). Three classes of system calls will soon be out from under Giant: * system calls that retrieve information from ucred. With Julian's latest patch, the ucred is now safe in the thread so these system calls can access it rather then the less-safe ucred in the proc structure. These will not be instrumented, they will simply access the information. * system calls that retrieve information from the proc, like getpid(), will soon be out from under giant or be able to just use the PROC_LOCK. These will be instrumented with the kern.giant.proc sysctl. * system calls that mess around with file descriptors and struct file's (Alfred's work), that do not have to push into the fileops, are coming along. I'm going to be messing with fileops after I finish messing with the ucred stuff. In the syscall path itself we need to clean up the Giant acquisition done in the syscall trap (that's why we want to not have to crfree() the thread's ucred structure after each syscall), userret() (signal checking), and perhaps a few other places. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message