sched: Micro optimization in pick_next_task() and in check_preempt_curr()
authorKirill Tkhai <tkhai@yandex.ru>
Thu, 19 Dec 2019 21:44:55 +0000 (16:44 -0500)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 25 Jun 2020 11:45:44 +0000 (13:45 +0200)
commitaa93cd53bc1b91b5f99c7b55e3dcc1ac98e99558
tree3cde032f84a6a2d529c92aa7e081dec7db2dd5dd
parenta87e749e8fa1aaef9b4db32e21c2795e69ce67bf
sched: Micro optimization in pick_next_task() and in check_preempt_curr()

This introduces an optimization based on xxx_sched_class addresses
in two hot scheduler functions: pick_next_task() and check_preempt_curr().

It is possible to compare pointers to sched classes to check, which
of them has a higher priority, instead of current iterations using
for_each_class().

One more result of the patch is that size of object file becomes a little
less (excluding added BUG_ON(), which goes in __init section):

$size kernel/sched/core.o
         text     data      bss     dec     hex filename
before:  66446    18957     676   86079   1503f kernel/sched/core.o
after:   66398    18957     676   86031   1500f kernel/sched/core.o

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: http://lkml.kernel.org/r/711a9c4b-ff32-1136-b848-17c622d548f3@yandex.ru
kernel/sched/core.c