freebsd-skq/sys/fs/devfs
ed 50efccc9f0 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.
2009-01-28 19:58:05 +00:00
..
devfs_devs.c Mark most often used sysctl's as MPSAFE. 2009-01-28 19:58:05 +00:00
devfs_int.h Struct cdev is always the member of the struct cdev_priv. When devfs 2008-06-16 17:34:59 +00:00
devfs_rule.c Get pointer to devfs_ruleset struct after garbage collection has been 2008-06-22 14:34:38 +00:00
devfs_vfsops.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
devfs_vnops.c Don't panic with "vinvalbuf: dirty bufs" when the mounted device that was 2009-01-08 19:13:34 +00:00
devfs.h Properly lock the vnode around vgone() calls. 2006-10-18 11:17:14 +00:00