git: sysctl - SMP performance work
dillon at crater.dragonflybsd.org
Sat Jun 6 16:23:06 PDT 2015
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Jun 6 16:17:41 2015 -0700
sysctl - SMP performance work
Performance work on the sysctl API. Most accesses (including nearly all
accesses made by libc) now use a shared lock, increasing concurrency in the
* Acquire the sysctl global lock shared instead of exclusive for all normal
accesses. Use an exclusive lock for node and leaf creation or deletion.
Ultimately we will move to a fine-grained model and remove the global lock.
* Give each oid its own lockmgr lock. Automatically acquire this lock
shared for read access and exclusive for write access. This retains
just enough serialization of modifying (individual) sysctls to make
sense to programmers.
* Supply flag overrides to force shared or exclusive use. Force a shared
oid lock for name2oid(), allowing the sysctlbyname() path to nominally
use a shared lock.
Summary of changes:
sys/kern/kern_sysctl.c | 71 ++++++++++++++++++++++++++++++++------------------
sys/sys/sysctl.h | 9 +++++++
2 files changed, 54 insertions(+), 26 deletions(-)
DragonFly BSD source repository
More information about the Commits