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

From: yangxingui
Date: Mon Mar 31 2025 - 21:18:58 EST




On 2025/3/31 16:40, Niklas Cassel wrote:
Hello Xingui,

On Sat, Mar 29, 2025 at 05:49:47PM +0800, 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 solution I sent is not good since it relies on EH.

One would need to come up with a better solution to fix libsas drivers,
possibly a workqueue.

I think Damien is planning to add a workqueue submit path to libata,
if so, perhaps we could base a better solution on top of that.

Thank you for your solution. As you said, we may need a better solution.

Thanks,
Xingui
.