>On Fri, Mar 19, 2021 at 04:00:36PM +0800, Wang Qing wrote:
>> When touch_softlockup_watchdog() is called, only wq_watchdog_touched_cpu 
>> updated, while the unbound worker_pool running on its core uses 
>> wq_watchdog_touched to determine whether locked up. This may be mischecked.
>
>Can you please elaborate here, preferably with a concrete scenario where the
>new code is better?

The previous code is problematic for judging whether the unbound pool is locked 
up:
When the expected single cpu stall occurs, only wq_watchdog_touched_cpu is 
updated, 
However, the unbound pool uses wq_watchdog_touched to determine whether it is 
locked up, so when the unbound pool is running in a scenario where the cpu 
stall is 
expected, a misjudgment will occur, because wq_watchdog_touched only be update 
when all the cpu stall as expect.

So we need to update wq_watchdog_touched in touch_softlockup_watchdog(), and it 
is 
only used for unbound pool,  it will not affect the bound pool in any way.

Thanks,

Qing

>
>Thanks.
>
>-- 
>tejun


Reply via email to