Re: [PATCH 12/15] qla2xxx: Fix the call trace for flush workqueue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Dec 1, 2020, at 2:27 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote:
> 
> From: Saurav Kashyap <skashyap@xxxxxxxxxxx>
> 
> 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@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> 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@xxxxxxxxxx>

--
Himanshu Madhani	 Oracle Linux Engineering





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux