From: Fabiano Rosas <farosas@suse.de>
To: "Denis V. Lunev" <den@openvz.org>, qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org, "Denis V. Lunev" <den@openvz.org>
Subject: Re: [PATCH 1/1] tests/qtest/ahci: fix a racy deadlock in the engine stop test
Date: Wed, 09 Sep 2026 19:48:40 -0300 [thread overview]
Message-ID: <87fqzi6nxz.fsf@suse.de> (raw)
In-Reply-To: <20260830183534.104435-1-den@openvz.org>
"Denis V. Lunev" <den@openvz.org> writes:
> From: Denis V. Lunev <den@openvz.org>
>
> 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 <den@openvz.org>
> ---
> 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 <farosas@suse.de>
next prev parent reply other threads:[~2026-09-09 22:49 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-30 18:35 [PATCH 1/1] tests/qtest/ahci: fix a racy deadlock in the engine stop test Denis V. Lunev
2026-09-09 22:48 ` Fabiano Rosas [this message]
2026-09-10 8:39 ` Denis V. Lunev
2026-09-10 12:32 ` Fabiano Rosas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fqzi6nxz.fsf@suse.de \
--to=farosas@suse.de \
--cc=den@openvz.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.