mbox series

[0/2] Issue non-NCQ command via EH when NCQ commands in-flight

Message ID 20241031140731.224589-4-cassel@kernel.org
Headers show
Series Issue non-NCQ command via EH when NCQ commands in-flight | expand

Message

Niklas Cassel Oct. 31, 2024, 2:07 p.m. UTC
Hello all,

There is a problem when an application is continuously submitting NCQ
commands (e.g. fio with a queue depth greater than 1), this can completely
starve out another application that is sending a non-NCQ command (because
the non-NCQ command will be deferred forever).

Xingui Yang reported this problem here:
https://lore.kernel.org/linux-block/eef1e927-c9b2-c61d-7f48-92e65d8b0418@huawei.com/

This series addresses the reported problem.

Please test!


Kind regards,
Niklas


Niklas Cassel (2):
  ata: libata: Introduce new helper ata_qc_complete_success()
  ata: libata: Issue non-NCQ command via EH when NCQ commands in-flight

 drivers/ata/libata-core.c | 274 ++++++++++++++++++++++++++++++--------
 drivers/ata/libata-eh.c   |  60 ++++++++-
 drivers/ata/libata-scsi.c |  16 ++-
 drivers/ata/libata.h      |   1 +
 include/linux/libata.h    |   8 +-
 5 files changed, 297 insertions(+), 62 deletions(-)