Re: [PATCH 1/5] scsi: hisi_sas: Add host_tagset_enable module param for v3 hw

From: John Garry
Date: Mon Mar 31 2025 - 03:44:29 EST


On 29/03/2025 09:49, yangxingui wrote:
Hi,John

On 2025/3/29 16:50, John Garry wrote:
On 29/03/2025 07:32, Yihang Li wrote:

+

From: Xingui Yang<yangxingui@xxxxxxxxxx>

After driver exposes all HW queues and application submits IO to multiple
queues in parallel, if NCQ and non-NCQ commands are mixed to sata disk,
ata_qc_defer() causes non-NCQ commands to be requeued and possibly repeated
forever.

I don't think that it is a good idea to mask out bugs with module parameters.

Was this the same libata/libsas issue reported some time ago?

Yeah,related to this issue: https://lore.kernel.org/linux-block/ eef1e927-c9b2-c61d-7f48-92e65d8b0418@xxxxxxxxxx/

And, Niklas tried to help fix this problem: https://lore.kernel.org/ linux-scsi/ZynmfyDA9R-lrW71@ryzen/

Considering that there is no formal solution yet. And our users rarely use SATA disks and SAS disks together on a single machine. For this reason, they can flexibly turn off the exposure of multiple queues in the scenario of using only SATA disks. In addition, it is also convenient to conduct performance comparison tests to expose multiple hardware queues and single queues.


The change in this series does not even solve the issues, as:
- you do not guarantee no SAS/SATA mix without that module param enabled
- the driver still uses managed interrupts in both cases, so with disabling host_tagset you are now exposed to CPU hotplug issue of IO being in-flight when HW queue interrupt is shutdown

And pm8001 driver will have the same issue, so we need to find a proper fix.

Let me consider this issue more.