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

From: Michael Wang
Date: Tue Aug 21 2012 - 22:08:04 EST


On 08/22/2012 12:50 AM, Fengguang Wu wrote:
> 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 for your testing, I will send out the patch later with your
Tested-by :)

Regards,
Michael Wang

>
> 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/
>

--
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/