Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Feb 2002 09:15:16 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Robert Watson <rwatson@FreeBSD.ORG>
Cc:        Poul-Henning Kamp <phk@FreeBSD.ORG>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/kern kern_time.c
Message-ID:  <200202181715.g1IHFGU15223@apollo.backplane.com>
References:   <Pine.NEB.3.96L.1020218103123.69361L-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help

: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 
					<dillon@backplane.com>

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202181715.g1IHFGU15223>