]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r242852, r243069:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 22 Feb 2013 09:47:21 +0000 (09:47 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 22 Feb 2013 09:47:21 +0000 (09:47 +0000)
commit0ff8e71faa7a55cce1579397406d40de37b58d6b
treeda20528e9f12c601c7ef6bb9d3437fb2ba77753a
parent05289f9992f57a9a2b53dd3108184eb583653c8a
MFC r242852, r243069:
Several optimizations to sched_idletd():
 - Do not try to steal load from other CPUs if there was no context switches
on this CPU (i.e. it was idle all the time and woke up just for bus mastering
or TLB shutdown). If current CPU was idle, then it is quite unlikely that some
other CPU has load to steal.  Under high I/O rate, when TLB shutdowns cause
numerous CPU wakeups, on 24-CPU system load stealing code may consume up to
25% of all CPU time without giving any benefits.
 - Change code that implements spinning for load to restart spin in case of
context switch.  Previous code periodically called cpu_idle() even under
high interrupt/context switch rate.
 - Rise spinning threshold to 10KHz, where it gives at least some effect
that may worth consumed power.

git-svn-id: svn://svn.freebsd.org/base/stable/9@247150 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/kern/sched_ule.c