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@xxxxxxxxxx/ 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(-) -- 2.47.0