Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2009 19:58:05 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/fs/devfs devfs_devs.c src/sys/kern kern_jail.c kern_mib.c kern_sysctl.c
Message-ID:  <200901281958.n0SJwiEs097767@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
ed          2009-01-28 19:58:05 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/devfs         devfs_devs.c 
    sys/kern             kern_jail.c kern_mib.c kern_sysctl.c 
  Log:
  SVN rev 187864 on 2009-01-28 19:58:05Z by ed
  
  Mark most often used sysctl's as MPSAFE.
  
  After running a `make buildkernel', I noticed most of the Giant locks in
  sysctl are only caused by a very small amount of sysctl's:
  
  - sysctl.name2oid. This one is locked by SYSCTL_LOCK, just like
    sysctl.oidfmt.
  
  - kern.ident, kern.osrelease, kern.version, etc. These are just constant
    strings.
  
  - kern.arandom, used by the stack protector. It is already protected by
    arc4_mtx.
  
  I also saw the following sysctl's show up. Not as often as the ones
  above, but still quite often:
  
  - security.jail.jailed. Also mark security.jail.list as MPSAFE. They
    don't need locking or already use allprison_lock.
  
  - kern.devname, used by devname(3), ttyname(3), etc.
  
  This seems to reduce Giant locking inside sysctl by ~75% in my primitive
  test setup.
  
  Revision  Changes    Path
  1.56      +3 -2      src/sys/fs/devfs/devfs_devs.c
  1.93      +6 -4      src/sys/kern/kern_jail.c
  1.93      +8 -7      src/sys/kern/kern_mib.c
  1.187     +4 -3      src/sys/kern/kern_sysctl.c



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