On 27/10/2019 08:19, Ming Lei wrote:
.this_id = -1,
@@ -3265,8 +3300,14 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id)
shost->max_lun = ~0;
shost->max_channel = 1;
shost->max_cmd_len = 16;
- shost->can_queue = HISI_SAS_UNRESERVED_IPTT;
- shost->cmd_per_lun = HISI_SAS_UNRESERVED_IPTT;
+
Hi Ming,
I mentioned in the thread "blk-mq: improvement on handling IO during CPU
hotplug" that I was using this series to test that patchset.
So just with this patchset (and without yours), I get what looks like
some IO errors in the LLDD. The error is an underflow error. I can't
figure out what is the cause.
I'm wondering if the SCSI command is getting corrupted someway.
+ if (expose_mq_experimental) {
+ shost->can_queue = HISI_SAS_MAX_COMMANDS;
+ shost->cmd_per_lun = HISI_SAS_MAX_COMMANDS;
The above is contradictory with current 'nr_hw_queues''s meaning,
see commit on Scsi_Host.nr_hw_queues.
Right, so I am generating the hostwide tag in the LLDD. And the Scsi
host-wide host_busy counter should ensure that we don't pump too much IO
to the HBA.
What other problem will this cause?
Thanks,
John
/*
* In scsi-mq mode, the number of hardware queues supported by the LLD.
*
* Note: it is assumed that each hardware queue has a queue depth of
* can_queue. In other words, the total queue depth per host
* is nr_hw_queues * can_queue.
*/
Also this implementation wastes memory too much.
thanks,
Ming