Re: [patch 18/18] sched: Enable smp_processor_id() checks early

Thomas Gleixner
2017-05-15T15:36:34Z

On Mon, 15 May 2017, Steven Rostedt wrote:

> On Sun, 14 May 2017 20:27:34 +0200
> Thomas Gleixner <tglx@linutronix.de> wrote:
>
> > smp_processor_id() checks are enabled after the boot process is done. That
> > hides bugs in the smp bringup and driver initialization code.
> >
> > Enable it right before the first non-boot CPU is brought up.
> >
> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> > ---
> > init/main.c | 3 +++
> > lib/smp_processor_id.c | 2 +-
> > 2 files changed, 4 insertions(+), 1 deletion(-)
> >
> >
> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> > ---
> > init/main.c | 3 +++
> > lib/smp_processor_id.c | 2 +-
> > 2 files changed, 4 insertions(+), 1 deletion(-)
> >
> > --- a/init/main.c
> > +++ b/init/main.c
> > @@ -1025,6 +1025,9 @@ static noinline void __init kernel_init_
> > */
> > set_cpus_allowed_ptr(current, cpumask_of(raw_smp_processor_id()));
> >
> > + /* Enable smp_processor_id() checks */
> > + system_state = SYSTEM_BOOTING_SMP;
> > +
>
> Just a nit, but why set this here and not just before
> smp_prepare_cpus()? Anyway...

Because smp_prepare_cpus() is full of "UP" assumptions. Thinking more about
it, we just can set the cpus allowed ptr right after creating it and just
have a single state which enables both checks. I'll have a look.

Thanks,

tglx