Re: [PATCH] notifier: Fix soft lockup for notifier_call_chain().

From: Ding Tianhong
Date: Mon Jun 27 2016 - 23:31:59 EST


On 2016/6/28 3:50, Cong Wang wrote:
> On Fri, Jun 24, 2016 at 7:46 PM, Ding Tianhong <dingtianhong@xxxxxxxxxx> wrote:
>> diff --git a/kernel/notifier.c b/kernel/notifier.c
>> index fd2c9ac..9c30411 100644
>> --- a/kernel/notifier.c
>> +++ b/kernel/notifier.c
>> @@ -92,6 +92,8 @@ static int notifier_call_chain(struct notifier_block **nl,
>> #endif
>> ret = nb->notifier_call(nb, val, v);
>>
>> + cond_resched();
>> +
>> if (nr_calls)
>> (*nr_calls)++;
>
> NAK.
>
> You can't do a resched in atomic context in __atomic_notifier_call_chain().
>
>
Sorry, I miss this, so I think add touch_nmi_watchdog looks like the best solution for this problem.

Thanks
Ding