Re: [patch V2 00/17] init: Enable might_sleep() and smp_processor_id() debugging early

From: Mark Rutland
Date: Wed May 17 2017 - 06:58:47 EST


Hi,

On Tue, May 16, 2017 at 08:42:31PM +0200, Thomas Gleixner wrote:
> We recentlty discovered a call path which takes a mutex from the low level
> secondary CPU bringup code and wondered why this was not caught by
> might_sleep().
>
> The reason is that both debug facilities depend on system_state ==
> SYSTEM_RUNNING, which is set after init memory is freed.
>
> That means that SMP bootup and builtin driver initialization are not
> covered by these checks at all.
>
> The patch series addresses this by adding an intermediate state which
> enables both debug features right when scheduling starts, i.e. the boot CPU
> idle task schedules the first time.

Thanks again for attacking this.

I gave this a spin atop of v4.12-rc1 on an ARM Juno platform. It picks
up the mutex issue, and I see no other new warnings. With a fix [1] for
the mutex issue appplied, I see no warnings.

Feel free to add my Tested-by for the arm64 and common bits.

Thanks,
Mark.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-May/506558.html