summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-03-13 10:21:08 +0000
committermav <mav@FreeBSD.org>2012-03-13 10:21:08 +0000
commit5b5fc4e5856d75a0cda38add225366a3d7ff0035 (patch)
treef83aac95a478d25da0988f5a3273dda89bf8c517 /share
parentaf6e15978bd9add0d2d5418ff226ef159c430d36 (diff)
downloadFreeBSD-src-5b5fc4e5856d75a0cda38add225366a3d7ff0035.zip
FreeBSD-src-5b5fc4e5856d75a0cda38add225366a3d7ff0035.tar.gz
Add kern.eventtimer.activetick tunable/sysctl, specifying whether each
hardclock() tick should be run on every active CPU, or on only one. On my tests, avoiding extra interrupts because of this on 8-CPU Core i7 system with HZ=10000 saves about 2% of performance. At this moment option implemented only for global timers, as reprogramming per-CPU timers is too expensive now to be compensated by this benefit, especially since we still have to regularly run hardclock() on at least one active CPU to update system uptime. For global timer it is quite trivial: timer runs always, but we just skip IPIs to other CPUs when possible. Option is enabled by default now, keeping previous behavior, as periodic hardclock() calls are still used at least to implement setitimer(2) with ITIMER_VIRTUAL and ITIMER_PROF arguments. But since default schedulers don't depend on it since r232917, we are much more free to experiment with it. MFC after: 1 month
Diffstat (limited to 'share')
-rw-r--r--share/man/man4/eventtimers.48
1 files changed, 7 insertions, 1 deletions
diff --git a/share/man/man4/eventtimers.4 b/share/man/man4/eventtimers.4
index c935c3e..88ed860 100644
--- a/share/man/man4/eventtimers.4
+++ b/share/man/man4/eventtimers.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 15, 2010
+.Dd March 13, 2012
.Dt EVENTTIMERS 4
.Os
.Sh NAME
@@ -143,6 +143,12 @@ By default this options is disabled.
If chosen timer is per-CPU
and runs in periodic mode, this option has no effect - all interrupts are
always generating.
+.It Va kern.eventtimer.activetick
+makes each CPU to receive all kinds of timer interrupts when they are busy.
+Disabling it allows to skip some hardclock() calls in some cases.
+By default this options is enabled.
+If chosen timer is per-CPU, this option has no effect - all interrupts are
+always generating, as timer reprogramming is too expensive for that case.
.El
.Sh SEE ALSO
.Xr apic 4 ,
OpenPOWER on IntegriCloud