"Denis V. Lunev" <[email protected]> writes: > On 9/10/26 00:48, Fabiano Rosas wrote: >> "Denis V. Lunev" <[email protected]> writes: >> >>> From: Denis V. Lunev <[email protected]> >>> >>> test_write_engine_stop_in_flight() resumes the suspended backend write >>> and goes straight on to restart the command engine and read the second >>> sector back. Whether the write has retired by then is a race. While it >>> is still outstanding the drive is busy, and handle_cmd() drops a >>> command that arrives in that state instead of queueing it. Nothing >>> retries the drop, so the PxCI slot stays set and no D2H FIS is posted. >>> ahci_command_wait() polls both with no timeout, so the test deadlocks >>> until the harness kills it. >>> >>> Drain the port before issuing the read, so the abandoned write has >>> retired and the engine is idle. Host load stretches the gap between the >>> resume and the write completing, which is why the deadlock only shows >>> up on a loaded machine. >>> >>> Fixes: d05ae87e7a6a ("tests/qtest/ahci: regression test for a PIO write vs. >>> engine stop") >>> Signed-off-by: Denis V. Lunev <[email protected]> >>> --- >>> tests/qtest/ahci-test.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/tests/qtest/ahci-test.c b/tests/qtest/ahci-test.c >>> index b143862ce7..2552fa39f1 100644 >>> --- a/tests/qtest/ahci-test.c >>> +++ b/tests/qtest/ahci-test.c >>> @@ -1914,6 +1914,12 @@ static void test_write_engine_stop_in_flight(void) >>> >>> g_free(qtest_hmp(ahci->parent->qts, "qemu-io drive0 \"resume wr\"")); >>> >>> + /* >>> + * Retire the abandoned write. handle_cmd() drops a command that >>> arrives >>> + * while the drive is still busy and nothing retries it. >>> + */ >>> + g_free(qtest_hmp(ahci->parent->qts, "qemu-io drive0 \"aio_flush\"")); >>> + >>> /* Round-trip through the device to confirm qemu is still alive. */ >>> ahci_px_rreg(ahci, port, AHCI_PX_TFD); >> Reviewed-by: Fabiano Rosas <[email protected]> > Hi, Fabiano! > > Would you mind to get this patch through test tree? > I do not have enough IDE material except this patch > for now. > > Thank you in advance, > Den
Yep, no worries. I'm just waiting for my leak fixes series to be ready and I'll send a PR.
