Re: [PATCH] crypto: hisilicon/qm - prevent soft lockup in receive loop

From: Herbert Xu
Date: Fri Oct 27 2023 - 06:54:32 EST


On Fri, Oct 20, 2023 at 05:35:58PM +0800, Longfang Liu wrote:
> In the scenario where the accelerator business is fully loaded.
> When the workqueue receiving messages and performing callback
> processing, there are a large number of messages that need to be
> received, and there are continuously messages that have been
> processed and need to be received.
> This will cause the receive loop here to be locked for a long time.
> This scenario will cause watchdog timeout problems on OS with kernel
> preemption turned off.
>
> The error logs:
> watchdog: BUG: soft lockup - CPU#23 stuck for 23s! [kworker/u262:1:1407]
> [ 1461.978428][ C23] Call trace:
> [ 1461.981890][ C23] complete+0x8c/0xf0
> [ 1461.986031][ C23] kcryptd_async_done+0x154/0x1f4 [dm_crypt]
> [ 1461.992154][ C23] sec_skcipher_callback+0x7c/0xf4 [hisi_sec2]
> [ 1461.998446][ C23] sec_req_cb+0x104/0x1f4 [hisi_sec2]
> [ 1462.003950][ C23] qm_poll_req_cb+0xcc/0x150 [hisi_qm]
> [ 1462.009531][ C23] qm_work_process+0x60/0xc0 [hisi_qm]
> [ 1462.015101][ C23] process_one_work+0x1c4/0x470
> [ 1462.020052][ C23] worker_thread+0x150/0x3c4
> [ 1462.024735][ C23] kthread+0x108/0x13c
> [ 1462.028889][ C23] ret_from_fork+0x10/0x18
>
> Therefore, it is necessary to add an actively scheduled operation in the
> while loop to prevent this problem.
> After adding it, no matter whether the OS turns on or off the kernel
> preemption function. Neither will cause watchdog timeout issues.
>
> Signed-off-by: Longfang Liu <liulongfang@xxxxxxxxxx>
> ---
> drivers/crypto/hisilicon/qm.c | 2 ++
> 1 file changed, 2 insertions(+)

Patch applied. Thanks.
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt