[RFC][PATCH 0/4] sched: Optimizations to sched_class processing

From: Steven Rostedt
Date: Thu Dec 19 2019 - 16:46:20 EST



As Kirill made a micro-optimization to the processing of pick_next_task()
that required the address locations of the sched_class descriptors to
be that of their priority to one another. This required a linker
script modification to guarantee that order.

After adding the forced order in the linker script, I realized that
we no longer needed the 'next' field in the sched_class descriptor.
Thus, I changed it to use the order of the linker script.

Then decided that the sched_class_highest define could be moved
to the linker script as well to keep the defines of the order to
be in one location, and it be obvious what the highest sched_class is
when SMP is not configured. (BTW, I have not tested this with
!CONFIG_SMP yet, but who does ;-). As the removal of next was a bit
more invasive than the highest sched class change, I moved that to
be the second patch.

Finally I added Kirill's patch at the end, (Which may not have made it
to LKML due to trying to not get it mangled by Exchange).

Kirill Tkhai (1):
sched: Micro optimization in pick_next_task() and in check_preempt_curr()

Steven Rostedt (VMware) (3):
sched: Force the address order of each sched class descriptor
sched: Have sched_class_highest define by vmlinux.lds.h
sched: Remove struct sched_class next field

----
include/asm-generic/vmlinux.lds.h | 29 +++++++++++++++++++++++++++++
kernel/sched/core.c | 24 +++++++++---------------
kernel/sched/deadline.c | 4 ++--
kernel/sched/fair.c | 4 ++--
kernel/sched/idle.c | 4 ++--
kernel/sched/rt.c | 4 ++--
kernel/sched/sched.h | 13 +++++--------
kernel/sched/stop_task.c | 4 ++--
8 files changed, 53 insertions(+), 33 deletions(-)