* [PATCH] scsi: megaraid: clear READ queue map's nr_queues
@ 2022-07-06 12:59 Ming Lei
2022-07-11 2:29 ` Ming Lei
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Ming Lei @ 2022-07-06 12:59 UTC (permalink / raw)
To: Martin K . Petersen, linux-scsi
Cc: Ming Lei, Kashyap Desai, sumit.saxena, chandrakanth.patil,
linux-block, Hannes Reinecke, Guangwu Zhang
megaraid scsi driver sets set->nr_maps as 3 if poll_queues is > 0, and
blk-mq actually initializes each map's nr_queues as nr_hw_queues, so
megaraid driver has to clear READ queue map's nr_queues, otherwise queue
map becomes broken if poll_queues is set as non-zero.
Fixes: 9e4bec5b2a23 ("scsi: megaraid_sas: mq_poll support")
Cc: Kashyap Desai <kashyap.desai@broadcom.com>
Cc: sumit.saxena@broadcom.com
Cc: chandrakanth.patil@broadcom.com
Cc: linux-block@vger.kernel.org
Cc: Hannes Reinecke <hare@suse.de>
Reported-by: Guangwu Zhang <guazhang@redhat.com>
Tested-by: Guangwu Zhang <guazhang@redhat.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
drivers/scsi/megaraid/megaraid_sas_base.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index c95360a3c186..0917b05059b4 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -3195,6 +3195,9 @@ static int megasas_map_queues(struct Scsi_Host *shost)
qoff += map->nr_queues;
offset += map->nr_queues;
+ /* we never use READ queue, so can't cheat blk-mq */
+ shost->tag_set.map[HCTX_TYPE_READ].nr_queues = 0;
+
/* Setup Poll hctx */
map = &shost->tag_set.map[HCTX_TYPE_POLL];
map->nr_queues = instance->iopoll_q_count;
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] scsi: megaraid: clear READ queue map's nr_queues
2022-07-06 12:59 [PATCH] scsi: megaraid: clear READ queue map's nr_queues Ming Lei
@ 2022-07-11 2:29 ` Ming Lei
2022-07-11 3:39 ` Bart Van Assche
2022-07-14 4:22 ` Martin K. Petersen
2 siblings, 0 replies; 4+ messages in thread
From: Ming Lei @ 2022-07-11 2:29 UTC (permalink / raw)
To: Martin K . Petersen, linux-scsi
Cc: Kashyap Desai, sumit.saxena, chandrakanth.patil, linux-block,
Hannes Reinecke, Guangwu Zhang, Ming Lei
Hello Guys,
On Wed, Jul 6, 2022 at 8:59 PM Ming Lei <ming.lei@redhat.com> wrote:
>
> megaraid scsi driver sets set->nr_maps as 3 if poll_queues is > 0, and
> blk-mq actually initializes each map's nr_queues as nr_hw_queues, so
> megaraid driver has to clear READ queue map's nr_queues, otherwise queue
> map becomes broken if poll_queues is set as non-zero.
>
> Fixes: 9e4bec5b2a23 ("scsi: megaraid_sas: mq_poll support")
Ping...
Without this fix, it is easy to observe fio hang when running cpu hotplug
test in case of 'poll_queues > 0'.
Thanks,
Ming
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] scsi: megaraid: clear READ queue map's nr_queues
2022-07-06 12:59 [PATCH] scsi: megaraid: clear READ queue map's nr_queues Ming Lei
2022-07-11 2:29 ` Ming Lei
@ 2022-07-11 3:39 ` Bart Van Assche
2022-07-14 4:22 ` Martin K. Petersen
2 siblings, 0 replies; 4+ messages in thread
From: Bart Van Assche @ 2022-07-11 3:39 UTC (permalink / raw)
To: Ming Lei, Martin K . Petersen, linux-scsi
Cc: Kashyap Desai, sumit.saxena, chandrakanth.patil, linux-block,
Hannes Reinecke, Guangwu Zhang
On 7/6/22 05:59, Ming Lei wrote:
> megaraid scsi driver sets set->nr_maps as 3 if poll_queues is > 0, and
> blk-mq actually initializes each map's nr_queues as nr_hw_queues, so
> megaraid driver has to clear READ queue map's nr_queues, otherwise queue
> map becomes broken if poll_queues is set as non-zero.
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] scsi: megaraid: clear READ queue map's nr_queues
2022-07-06 12:59 [PATCH] scsi: megaraid: clear READ queue map's nr_queues Ming Lei
2022-07-11 2:29 ` Ming Lei
2022-07-11 3:39 ` Bart Van Assche
@ 2022-07-14 4:22 ` Martin K. Petersen
2 siblings, 0 replies; 4+ messages in thread
From: Martin K. Petersen @ 2022-07-14 4:22 UTC (permalink / raw)
To: linux-scsi, Ming Lei
Cc: Martin K . Petersen, sumit.saxena, linux-block, Kashyap Desai,
Guangwu Zhang, Hannes Reinecke, chandrakanth.patil
On Wed, 6 Jul 2022 20:59:42 +0800, Ming Lei wrote:
> megaraid scsi driver sets set->nr_maps as 3 if poll_queues is > 0, and
> blk-mq actually initializes each map's nr_queues as nr_hw_queues, so
> megaraid driver has to clear READ queue map's nr_queues, otherwise queue
> map becomes broken if poll_queues is set as non-zero.
>
>
Applied to 5.19/scsi-fixes, thanks!
[1/1] scsi: megaraid: clear READ queue map's nr_queues
https://git.kernel.org/mkp/scsi/c/8312cd3a7b83
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-14 4:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-06 12:59 [PATCH] scsi: megaraid: clear READ queue map's nr_queues Ming Lei
2022-07-11 2:29 ` Ming Lei
2022-07-11 3:39 ` Bart Van Assche
2022-07-14 4:22 ` Martin K. Petersen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.