Re: [PATCH RFC] sched: Micro optimization in pick_next_task() and in check_preempt_curr()

From: Peter Zijlstra
Date: Thu Dec 19 2019 - 08:54:09 EST


On Thu, Dec 19, 2019 at 08:50:42AM -0500, Steven Rostedt wrote:
> On Thu, 19 Dec 2019 15:39:14 +0300
> Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> wrote:
>
> > @@ -6569,6 +6558,11 @@ void __init sched_init(void)
> > unsigned long ptr = 0;
> > int i;
> >
> > + BUG_ON(&idle_sched_class > &fair_sched_class ||
> > + &fair_sched_class > &rt_sched_class ||
> > + &rt_sched_class > &dl_sched_class ||
> > + &dl_sched_class > &stop_sched_class);
> > +
>
> Can this be a BUILD_BUG_ON? These address should all be constants.

Nope, BUILD_BUG_ON() is for compile time constants, these are link time
constants.