Re: BUG: scheduling while atomic, under native_smp_prepare_cpus()

From: Fengguang Wu
Date: Tue Aug 21 2012 - 12:50:22 EST


On Mon, Aug 20, 2012 at 05:42:22PM +0800, Michael Wang wrote:
> On 08/20/2012 05:27 PM, Fengguang Wu wrote:
> > Hi Michael,
> >
> > On Mon, Aug 20, 2012 at 05:20:35PM +0800, Michael Wang wrote:
> >> On 08/17/2012 09:49 PM, Fengguang Wu wrote:
> >>
> >> Hi, FengGuang
> >>
> >> native_smp_prepare_cpus has already disabled the preempt before
> >> reach __irq_alloc_descs(), and sleep in mutex_lock() cause the bug.
> >>
> >> May be the follow patch could help to solve the issue(actually I
> >> think the true problem should be in _cond_resched...).
> >
> > Is this a debug patch? Since what it does is to conditionally disable
> > the warning.
>
> No, I use this as a solution, it should work as the bug reported in boot
> process before init_post called.
>
> We have some reference from __might_sleep which also avoid the check if
> system has not fully booted, so I think this way is acceptable, but I'm
> not the one to make decision...

Fair enough.

> >
> >> I can't do test by my self since I can't reproduce the issue on my
> >> machine, the kernel_init thread never got a need sched flag set at
> >> that moment in my case...
> >
> > I'll try it and report back :)
>
> Appreciate :)

It works! :)

Tested-by: Fengguang Wu <wfg@xxxxxxxxxxxxxxx>

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/