[PATCH 00/15] sched: EEVDF and latency-nice and/or slice-attr

From: Peter Zijlstra
Date: Wed May 31 2023 - 08:49:37 EST


Latest version of the EEVDF [1] patches.

The only real change since last time is the fix for tick-preemption [2], and a
simple safe-guard for the mixed slice heuristic.

Other than that, I've re-arranged the patches to make EEVDF come first and have
the latency-nice or slice-attribute patches on top.

Results should not be different from last time around, lots of people ran them
and found no major performance issues; what was found was better latency and
smaller variance (probably due to the more stable latency).

I'm hoping we can start queueing this part.

The big question is what additional interface to expose; some people have
voiced objections to the latency-nice interface, the 'obvious' alternative
is to directly expose the slice length as a request/hint.

The very last patch implements this alternative using sched_attr::sched_runtime
but is untested.

Diffstat for the base patches [1-11]:

include/linux/rbtree_augmented.h | 26 +
include/linux/sched.h | 7 +-
kernel/sched/core.c | 2 +
kernel/sched/debug.c | 48 +-
kernel/sched/fair.c | 1105 ++++++++++++++++++--------------------
kernel/sched/features.h | 24 +-
kernel/sched/sched.h | 16 +-
7 files changed, 587 insertions(+), 641 deletions(-)

[1] https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564

[2] https://lkml.kernel.org/r/20230420150537.GC4253%40hirez.programming.kicks-ass.net