diff mbox series

[V4,01/31] smartpqi: use host wide tagspace

Message ID 161540645071.19430.854884194228600277.stgit@brunhilda
State Superseded
Headers show
Series [V4,01/31] smartpqi: use host wide tagspace | expand

Commit Message

Don Brace March 10, 2021, 8 p.m. UTC
Correct scsi-mid-layer sending more requests than
exposed host Q depth causing firmware ASSERT and lockup
issue by enabling host wide tags and setting nr_hw_queues
to 1.

Note: this also results in better performance.

Suggested-by: Ming Lei <ming.lei@redhat.com>
Suggested-by: John Gary <john.gary@huawei.com>
Reviewed-by: Scott Benesh <scott.benesh@microchip.com>
Reviewed-by: Scott Teel <scott.teel@microchip.com>
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com>
Signed-off-by: Don Brace <don.brace@microchip.com>
---
 drivers/scsi/smartpqi/smartpqi_init.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Don Brace March 11, 2021, 2:28 p.m. UTC | #1
-----Original Message-----
From: John Garry [mailto:john.garry@huawei.com] 

Subject: Re: [PATCH V4 01/31] smartpqi: use host wide tagspace

On 10/03/2021 20:00, Don Brace wrote:
> Correct scsi-mid-layer sending more requests than exposed host Q depth 

> causing firmware ASSERT and lockup issue by enabling host wide tags 

> and setting nr_hw_queues to 1.

>

> Note: this also results in better performance.

>

> Suggested-by: Ming Lei <ming.lei@redhat.com>

> Suggested-by: John Gary <john.gary@huawei.com>


misspelled name
Don: Sorry John, corrected in V5

> Reviewed-by: Scott Benesh <scott.benesh@microchip.com>

> Reviewed-by: Scott Teel <scott.teel@microchip.com>

> Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com>

> Signed-off-by: Don Brace <don.brace@microchip.com>

> ---

>   drivers/scsi/smartpqi/smartpqi_init.c |    3 ++-

>   1 file changed, 2 insertions(+), 1 deletion(-)

>

> diff --git a/drivers/scsi/smartpqi/smartpqi_init.c 

> b/drivers/scsi/smartpqi/smartpqi_init.c

> index c53f456fbd09..c154e4578e55 100644

> --- a/drivers/scsi/smartpqi/smartpqi_init.c

> +++ b/drivers/scsi/smartpqi/smartpqi_init.c

> @@ -6598,7 +6598,8 @@ static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)

>       shost->transportt = pqi_sas_transport_template;

>       shost->irq = pci_irq_vector(ctrl_info->pci_dev, 0);

>       shost->unique_id = shost->irq;

> -     shost->nr_hw_queues = ctrl_info->num_queue_groups;

> +     shost->nr_hw_queues = 1;

> +     shost->host_tagset = 1;


If nr_hw_queues = 1, then there is no point in setting host_tagset.

Apart from that, I'm concerned with the issue mentioned here:

https://lore.kernel.org/linux-scsi/4bff6232-6abd-dae8-c240-07a1a40178bf@huawei.com/

Thanks,
John

Don: Thanks John, addressed in V5.


>       shost->hostdata[0] = (unsigned long)ctrl_info;

>

>       rc = scsi_add_host(shost, &ctrl_info->pci_dev->dev);

>

> .

>
diff mbox series

Patch

diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index c53f456fbd09..c154e4578e55 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -6598,7 +6598,8 @@  static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)
 	shost->transportt = pqi_sas_transport_template;
 	shost->irq = pci_irq_vector(ctrl_info->pci_dev, 0);
 	shost->unique_id = shost->irq;
-	shost->nr_hw_queues = ctrl_info->num_queue_groups;
+	shost->nr_hw_queues = 1;
+	shost->host_tagset = 1;
 	shost->hostdata[0] = (unsigned long)ctrl_info;
 
 	rc = scsi_add_host(shost, &ctrl_info->pci_dev->dev);