From owner-cvs-all Mon Feb 18 9:34:54 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 A156737B400; Mon, 18 Feb 2002 09:34:46 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g1IHYkY15439; Mon, 18 Feb 2002 09:34:46 -0800 (PST) (envelope-from dillon) Date: Mon, 18 Feb 2002 09:34:46 -0800 (PST) From: Matthew Dillon Message-Id: <200202181734.g1IHYkY15439@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 John seems to have patches for just about everything, but they're useless if he doesn't focus and start committing them. I am going to start comitting the simpler stuff, like the ucred stuff that is based on Julian's work (which John ought not to have patches for since it didn't exist two days ago). If we hit a conflict John can email me and we will work it out. Otherwise I won't be able to commit anything at all in any subsystem for the next year without first checking with John, which is rather silly. -Matt Matthew Dillon :On Mon, 18 Feb 2002, Matthew Dillon wrote: : :> That's what those gettimeofday() benchmarks I posted were testing. : :Sorry, I must have missed this: I was looking for before/after benchmarks :from phk's commit. : :... :> 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. : :John has a rather large patch in his jhb_proc branch that does precisely :this. I hope he can commit this soon. Note that you do have to be a :little careful here: it is necessary to use p_ucred under several :circumstances (such as during updates) so as to get proper consistency :(i.e., changes must be authorized using the Real Process Credential). In :practice this means there are frequently three valid credentials for :authorization: process, thread, and cached object. Mostly, we'll use :thread or cached object. : :> * 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. : :Sounds good. John also has patches, I believe, that pull some signal :operations out: thinks like get/setsigmask() being out from Giant should :also have a good performance improvement for userland threading :applications. :... : :> 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. : :John may already have patches for this. Please make sure you synchronize :with him on this work. : :Robert N M Watson FreeBSD Core Team, TrustedBSD Project :robert@fledge.watson.org NAI Labs, Safeport Network Services To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message