From: Peter Hilber <peter.hilber@oss.qualcomm.com>
To: virtio-comment@lists.linux.dev
Cc: Trilok Soni <trilok.soni@oss.qualcomm.com>,
Peter Hilber <peter.hilber@oss.qualcomm.com>
Subject: [PATCH 0/1] transport-mmio: Add optional reset completion polling
Date: Wed, 4 Feb 2026 12:50:21 +0100 [thread overview]
Message-ID: <20260204115022.1930-1-peter.hilber@oss.qualcomm.com> (raw)
Let devices using the MMIO transport avoid stalling the driver (virtual)
CPU during device reset, which requires introducing a new MMIO transport
version. This proposal is similar to [1], but simpler.
If the device reset includes terminating device activity which may
interfere with the driver, the reset should always have completed by the
time the driver considers the reset complete. After device reset, the
driver may free previously exposed buffers. Per the current MMIO transport
specification, the device must hence complete the reset during the write of
0 to the Status register. If terminating the device activity takes long,
the (virtual) CPU doing this write to the Status register must be stalled
for extended time, which may violate real-time requirements (including
those for hypervisor trap-and-emulate).
Address this by introducing a new MMIO transport version, v3, where the
driver must poll for reset completion, and, hence, the device reset does
not have to finish during the write of 0 to the Status register. Polling
for an operation to finish is a pattern also used for the PCI transport
device reset, device suspend, and MMIO transport QueueReset writes.
Unlike [1], this proposal does not require a reset-in-progress status bit.
Unlike [1], devices cannot indicate that the reset failed, which appears
unneeded.
This proposal has been verified with proof-of-concept implementations for
the Linux kernel and EDK2 OVMF Virtio drivers (supporting v2 and v3), and
for the QEMU Virtio devices.
[1] https://www.mail-archive.com/virtio-dev@lists.oasis-open.org/msg07677.html
Signed-off-by: Peter Hilber <peter.hilber@oss.qualcomm.com>
Peter Hilber (1):
transport-mmio: Add v3, which polls for reset completion
transport-mmio.tex | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
base-commit: 5187698cc6f40fd2f2a714ca3faa6e998c5fc231
--
2.43.0
next reply other threads:[~2026-02-04 11:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 11:50 Peter Hilber [this message]
2026-02-04 11:50 ` [PATCH 1/1] transport-mmio: Add v3, which polls for reset completion Peter Hilber
2026-03-26 18:44 ` Matias Ezequiel Vara Larsen
2026-03-27 18:26 ` Peter Hilber
2026-03-26 23:13 ` Michael S. Tsirkin
2026-03-27 18:47 ` Peter Hilber
2026-03-10 12:32 ` [PATCH 0/1] transport-mmio: Add optional reset completion polling Peter Hilber
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=20260204115022.1930-1-peter.hilber@oss.qualcomm.com \
--to=peter.hilber@oss.qualcomm.com \
--cc=trilok.soni@oss.qualcomm.com \
--cc=virtio-comment@lists.linux.dev \
/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.