aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_features.h
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-01-14 12:39:19 +0100
committerIngo Molnar <mingo@elte.hu>2009-01-15 12:00:09 +0100
commite52fb7c097238d34f4d8e2a596f8a3f85b0c0565 (patch)
treef846443fdf7888583b4b0ff0ddd0be1be4b37df6 /kernel/sched_features.h
parent831451ac4e44d3a20b581ce726ef1d1144373f7d (diff)
downloadkernel_samsung_smdk4412-e52fb7c097238d34f4d8e2a596f8a3f85b0c0565.zip
kernel_samsung_smdk4412-e52fb7c097238d34f4d8e2a596f8a3f85b0c0565.tar.gz
kernel_samsung_smdk4412-e52fb7c097238d34f4d8e2a596f8a3f85b0c0565.tar.bz2
sched: prefer wakers
Prefer tasks that wake other tasks to preempt quickly. This improves performance because more work is available sooner. The workload that prompted this patch was a kernel build over NFS4 (for some curious and not understood reason we had to revert commit: 18de9735300756e3ca9c361ef58409d8561dfe0d to make any progress at all) Without this patch a make -j8 bzImage (of x86-64 defconfig) would take 3m30-ish, with this patch we're down to 2m50-ish. psql-sysbench/mysql-sysbench show a slight improvement in peak performance as well, tbench and vmark seemed to not care. It is possible to improve upon the build time (to 2m20-ish) but that seriously destroys other benchmarks (just shows that there's more room for tinkering). Much thanks to Mike who put in a lot of effort to benchmark things and proved a worthy opponent with a competing patch. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Mike Galbraith <efault@gmx.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_features.h')
-rw-r--r--kernel/sched_features.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index da5d93b..76f6175 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -1,5 +1,6 @@
SCHED_FEAT(NEW_FAIR_SLEEPERS, 1)
-SCHED_FEAT(NORMALIZED_SLEEPER, 1)
+SCHED_FEAT(NORMALIZED_SLEEPER, 0)
+SCHED_FEAT(ADAPTIVE_GRAN, 1)
SCHED_FEAT(WAKEUP_PREEMPT, 1)
SCHED_FEAT(START_DEBIT, 1)
SCHED_FEAT(AFFINE_WAKEUPS, 1)