2009-07-24, 07:20
Code:
for i in /proc/sys/kernel/sched_domain/*; do echo $(( `cat "$i/domain0/flags"` | 16 )) > "$i/domain0/flags"; done
Try to run that as root, it allows the kernel to wake idle CPUs when a thread that was running on them awakes. Apparently the kernel gods say it's too aggressive on multicore CPUs, some cache affinity blah blah blah... It alleviates most of the problems I've seen, if it works for you, do it. Credit to theuni for bisecting the kernel to find the change that caused all of this, and bobo1on1 for digging up the procfs tunable.