All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.