diff options
author | ed <ed@FreeBSD.org> | 2009-05-18 12:03:43 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-05-18 12:03:43 +0000 |
commit | a6c06ba89c3c4501adeea814b78a150e2d129b99 (patch) | |
tree | fe5da22d073cb73c0d4650cdcbc5c0e2b6bc9ae1 /sys/kern/kern_clock.c | |
parent | 87f3af3d09b2598800c1368c4b0c84e10edf52e3 (diff) | |
download | FreeBSD-src-a6c06ba89c3c4501adeea814b78a150e2d129b99.zip FreeBSD-src-a6c06ba89c3c4501adeea814b78a150e2d129b99.tar.gz |
Mark the clock sysctls as MPSAFE.
These sysctls don't need any form of locking. At least cp_times is used
by powerd very often, which means I get 50% less calls to non-MPSAFE
sysctls on my system. The other 50% is consumed by dev.cpu.0.freq, but
this seems to need Giant for Newbus.
Diffstat (limited to 'sys/kern/kern_clock.c')
-rw-r--r-- | sys/kern/kern_clock.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index b311d30..e95bc19 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -112,7 +112,7 @@ sysctl_kern_cp_time(SYSCTL_HANDLER_ARGS) return error; } -SYSCTL_PROC(_kern, OID_AUTO, cp_time, CTLTYPE_LONG|CTLFLAG_RD, +SYSCTL_PROC(_kern, OID_AUTO, cp_time, CTLTYPE_LONG|CTLFLAG_RD|CTLFLAG_MPSAFE, 0,0, sysctl_kern_cp_time, "LU", "CPU time statistics"); static long empty[CPUSTATES]; @@ -156,7 +156,7 @@ sysctl_kern_cp_times(SYSCTL_HANDLER_ARGS) return error; } -SYSCTL_PROC(_kern, OID_AUTO, cp_times, CTLTYPE_LONG|CTLFLAG_RD, +SYSCTL_PROC(_kern, OID_AUTO, cp_times, CTLTYPE_LONG|CTLFLAG_RD|CTLFLAG_MPSAFE, 0,0, sysctl_kern_cp_times, "LU", "per-CPU time statistics"); void @@ -559,7 +559,8 @@ sysctl_kern_clockrate(SYSCTL_HANDLER_ARGS) return (sysctl_handle_opaque(oidp, &clkinfo, sizeof clkinfo, req)); } -SYSCTL_PROC(_kern, KERN_CLOCKRATE, clockrate, CTLTYPE_STRUCT|CTLFLAG_RD, +SYSCTL_PROC(_kern, KERN_CLOCKRATE, clockrate, + CTLTYPE_STRUCT|CTLFLAG_RD|CTLFLAG_MPSAFE, 0, 0, sysctl_kern_clockrate, "S,clockinfo", "Rate and period of various kernel clocks"); |