![Peter Zijlstra](/assets/img/avatar_default.png)
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:
18de973530
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>
17 lines
456 B
C
17 lines
456 B
C
SCHED_FEAT(NEW_FAIR_SLEEPERS, 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)
|
|
SCHED_FEAT(CACHE_HOT_BUDDY, 1)
|
|
SCHED_FEAT(SYNC_WAKEUPS, 1)
|
|
SCHED_FEAT(HRTICK, 0)
|
|
SCHED_FEAT(DOUBLE_TICK, 0)
|
|
SCHED_FEAT(ASYM_GRAN, 1)
|
|
SCHED_FEAT(LB_BIAS, 1)
|
|
SCHED_FEAT(LB_WAKEUP_UPDATE, 1)
|
|
SCHED_FEAT(ASYM_EFF_LOAD, 1)
|
|
SCHED_FEAT(WAKEUP_OVERLAP, 0)
|
|
SCHED_FEAT(LAST_BUDDY, 1)
|