mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
RDMA/rtrs: remove WQ_MEM_RECLAIM for rtrs_wq
lockdep triggers a warning from time to time when running a regression test: rnbd_client L685: </dev/nullb0@bla> Device disconnected. rnbd_client L1756: Unloading module workqueue: WQ_MEM_RECLAIM rtrs_client_wq:rtrs_clt_reconnect_work [rtrs_client] is flushing !WQ_MEM_RECLAIM ib_addr:process_one_req [ib_core] WARNING: CPU: 2 PID: 18824 at kernel/workqueue.c:2517 check_flush_dependency+0xad/0x130 The root cause is workqueue core expect flushing should not be done for a !WQ_MEM_RECLAIM wq from a WQ_MEM_RECLAIM workqueue. In above case ib_addr workqueue without WQ_MEM_RECLAIM, but rtrs_wq WQ_MEM_RECLAIM. To avoid the warning, remove the WQ_MEM_RECLAIM flag. Fixes:9cb8374804
("RDMA/rtrs: server: main functionality") Fixes:6a98d71dae
("RDMA/rtrs: client: main functionality") Link: https://lore.kernel.org/r/20200724111508.15734-4-haris.iqbal@cloud.ionos.com Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com> Signed-off-by: Md Haris Iqbal <haris.iqbal@cloud.ionos.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
09e0dbbeed
commit
03ed5a8cda
@ -2982,7 +2982,7 @@ static int __init rtrs_client_init(void)
|
||||
pr_err("Failed to create rtrs-client dev class\n");
|
||||
return PTR_ERR(rtrs_clt_dev_class);
|
||||
}
|
||||
rtrs_wq = alloc_workqueue("rtrs_client_wq", WQ_MEM_RECLAIM, 0);
|
||||
rtrs_wq = alloc_workqueue("rtrs_client_wq", 0, 0);
|
||||
if (!rtrs_wq) {
|
||||
class_destroy(rtrs_clt_dev_class);
|
||||
return -ENOMEM;
|
||||
|
@ -2150,7 +2150,7 @@ static int __init rtrs_server_init(void)
|
||||
err = PTR_ERR(rtrs_dev_class);
|
||||
goto out_chunk_pool;
|
||||
}
|
||||
rtrs_wq = alloc_workqueue("rtrs_server_wq", WQ_MEM_RECLAIM, 0);
|
||||
rtrs_wq = alloc_workqueue("rtrs_server_wq", 0, 0);
|
||||
if (!rtrs_wq) {
|
||||
err = -ENOMEM;
|
||||
goto out_dev_class;
|
||||
|
Loading…
Reference in New Issue
Block a user