NOTE: I didn't include any performance numbers because I wasn't able to get consistent results. I tried the following on a Xeon E5-2420 v2 CPU:
$ for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo -n performance > $i; done $ echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo $ echo 100 > /sys/devices/system/cpu/intel_pstate/min_perf_pct $ echo 0 > /proc/sys/kernel/nmi_watchdog $ taskset 0x10 perf stat -n -r10 perf bench sched pipe -l 1000000 I was going to post the numbers from that, both with and without SCHEDSTATS, but then when I tried to repeat the test on a different day, the results were surprisingly different, with different conclusions. So any advice on measuring scheduler performance would be appreciated... Josh Poimboeuf (5): sched/debug: rename and move enqueue_sleeper() sched/debug: schedstat macro cleanup sched/debug: 'schedstat_val()' -> 'schedstat_val_or_zero()' sched/debug: remove several CONFIG_SCHEDSTATS guards sched/debug: decouple 'sched_stat_*' tracepoints' from CONFIG_SCHEDSTATS include/linux/sched.h | 11 +- kernel/latencytop.c | 2 - kernel/profile.c | 5 - kernel/sched/core.c | 59 ++++------ kernel/sched/debug.c | 104 +++++++++-------- kernel/sched/fair.c | 290 ++++++++++++++++++++--------------------------- kernel/sched/idle_task.c | 2 +- kernel/sched/stats.h | 24 ++-- lib/Kconfig.debug | 1 - 9 files changed, 220 insertions(+), 278 deletions(-) -- 2.4.11