On 2025/3/31 15:43, John Garry wrote:
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
Yes, there will be such problems.
And pm8001 driver will have the same issue, so we need to find a proper
fix.
Let me consider this issue more.
OK.
Thanks,
Xingui