Message ID | 161540645071.19430.854884194228600277.stgit@brunhilda (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | smartpqi updates | expand |
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 > 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 > shost->hostdata[0] = (unsigned long)ctrl_info; > > rc = scsi_add_host(shost, &ctrl_info->pci_dev->dev); > > . >
-----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 --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);