Message ID | 20201201082730.24158-13-njavali@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx bug fixes | expand |
> On Dec 1, 2020, at 2:27 AM, Nilesh Javali <njavali@marvell.com> wrote: > > From: Saurav Kashyap <skashyap@marvell.com> > > The call trace was because workqueue was allocated without any > flags, added WQ_MEM_RECLAIM as flag while allocation. > > kernel: workqueue: WQ_MEM_RECLAIM > kblockd:blk_mq_run_work_fn is flushing !WQ_MEM_RECLAIM qla2xxx_wq:0x0 > kernel: WARNING: CPU: 0 PID: 2475 at > kernel/workqueue.c:2593 check_flush_dependency+0x110/0x130 > kernel: CPU: 0 PID: 2475 Comm: kworker/0:1H Kdump: > loaded Tainted: G OE --------- - - 4.18.0-193.el8.x86_64 #1 > kernel: Hardware name: HPE ProLiant XL170r Gen10/ProLiant XL170r Gen10, BIOS U38 05/21/2019 > kernel: Workqueue: kblockd blk_mq_run_work_fn > kernel: RIP: 0010:check_flush_dependency+0x110/0x130 > kernel: Code: ff ff 48 8b 50 18 48 8d 8b b0 00 00 00 49 89 e8 48 81 c6 b0 00 00 00 48 c7 c7 00 1e e9 > 95 c6 05 dc 9a 2f 01 01 e8 1a 42 fe ff <0f> 0b e9 0a ff ff ff 80 3d ca 9a 2f 01 0 0 75 95 e9 41 ff ff ff 90 > kernel: RSP: 0018:ffffa40f48b2baf8 EFLAGS: 00010282 > kernel: RAX: 0000000000000000 RBX: ffff946795282600 RCX: 0000000000000000 > kernel: RDX: 000000000000005f RSI: ffffffff96a1af7f RDI: 0000000000000246 > kernel: RBP: 0000000000000000 R08: ffffffff96a1af20 R09: 0000000000029480 > kernel: R10: 00080c89bb3e7462 R11: 00000000000009ab R12: ffff946773628000 > kernel: R13: 0000000000000282 R14: 0000000000000246 R15: ffffa40f48b2bb40 > kernel: FS: 0000000000000000(0000) GS:ffff94679fa00000(0000) knlGS:0000000000000000 > kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > kernel: CR2: 00005570c4b60110 CR3: 000000029140a005 CR4: 00000000007606f0 > kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > kernel: PKRU: 55555554 > kernel: Call Trace: > kernel: flush_workqueue+0x13a/0x440 > kernel: qla2x00_wait_for_sess_deletion+0x1d6/0x200 [qla2xxx] > kernel: ? finish_wait+0x80/0x80 > kernel: qla2xxx_disable_port+0x2b/0x30 [qla2xxx] > kernel: qla2x00_process_vendor_specific+0x1dc9/0x2d20 [qla2xxx] > kernel: ? blk_rq_map_sg+0x195/0x570 > kernel: qla24xx_bsg_request+0x1a3/0xf90 [qla2xxx] > > Signed-off-by: Saurav Kashyap <skashyap@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_os.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c > index f9c8ae9d669e..a75edba2b334 100644 > --- a/drivers/scsi/qla2xxx/qla_os.c > +++ b/drivers/scsi/qla2xxx/qla_os.c > @@ -3265,7 +3265,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) > "req->req_q_in=%p req->req_q_out=%p rsp->rsp_q_in=%p rsp->rsp_q_out=%p.\n", > req->req_q_in, req->req_q_out, rsp->rsp_q_in, rsp->rsp_q_out); > > - ha->wq = alloc_workqueue("qla2xxx_wq", 0, 0); > + ha->wq = alloc_workqueue("qla2xxx_wq", WQ_MEM_RECLAIM, 0); > if (unlikely(!ha->wq)) { > ret = -ENOMEM; > goto probe_failed; > -- > 2.19.0.rc0 > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> -- Himanshu Madhani Oracle Linux Engineering
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index f9c8ae9d669e..a75edba2b334 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3265,7 +3265,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) "req->req_q_in=%p req->req_q_out=%p rsp->rsp_q_in=%p rsp->rsp_q_out=%p.\n", req->req_q_in, req->req_q_out, rsp->rsp_q_in, rsp->rsp_q_out); - ha->wq = alloc_workqueue("qla2xxx_wq", 0, 0); + ha->wq = alloc_workqueue("qla2xxx_wq", WQ_MEM_RECLAIM, 0); if (unlikely(!ha->wq)) { ret = -ENOMEM; goto probe_failed;