From: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
To: svt-core@virtuozzo.com
Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org
Subject: [PATCH QEMU HCI-8.0 v6 00/12] usb-host: support CPR migration
Date: Tue, 06 Oct 2026 13:34:24 +0300 [thread overview]
Message-ID: <20261006-usb-host_v3-v6-0-8688ec9576d1@virtuozzo.com> (raw)
v5 -> v6:
Substantial changes:
* Drain each usb-host from a vm-state change handler when the VM stops
for CPR (RUN_STATE_FINISH_MIGRATE), before the device and interrupt
controller are snapshotted. A completion raised during the drain now
lands in the still-live interrupt controller and is migrated, instead
of being lost as it was when the drain ran from .pre_save() after the
snapshot.
* Deliver a cancelled transfer that moved some data as a short transfer
instead of dropping it; a zero-progress one is suppressed for the
target to replay from the start of the TD. A VM already paused when
migration starts keeps a suppress-all drain in .pre_save() as a
fallback.
Minor changes (refactoring/cleanup):
* Group the per-device CPR fields into one struct block; factor the
drain-and-handoff tail into usb_host_cpr_quiesce(); fold the
altsetting range check into the interface reclaim (one config
descriptor read); register the exit notifier and vm-state handler
only after the blocker, shrinking the realize error path.
* Commit message and comment rewording, forward-declaration placement,
and a checkpatch line-length fix. No functional change.
v5: http://lore.virtuozzo.com/qemu/20260925-usb-host_v3-v5-0-e5b21724db4d@virtuozzo.com/
Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
---
Andrey Drobyshev (12):
usb-host: don't leak hostdev FD on open failure #VSTOR-137800
usb-host: add migration blocker for CPR modes #VSTOR-137800
usb-host: preserve hostdev FD during CPR migration #VSTOR-137800
usb-host: factor out usb_host_reap_xfers() #VSTOR-137800
usb-host: drain in-flight URBs across CPR #VSTOR-137800
usb-host: re-issue drained URBs if CPR is aborted #VSTOR-137800
usb-host: skip product-string read on CPR incoming #VSTOR-137800
usb-host: hand off the device across cpr-transfer #VSTOR-137800
usb: migrate the interface altsetting #VSTOR-137800
usb-host: reconfigure endpoints on CPR incoming #VSTOR-137800
hcd-xhci: resync isochronous endpoints after CPR #VSTOR-137800
usb-host: make CPR migration blocker conditional #VSTOR-137800
hw/usb/bus.c | 36 ++++
hw/usb/hcd-xhci.c | 20 ++
hw/usb/host-libusb.c | 525 +++++++++++++++++++++++++++++++++++++++++++++++----
3 files changed, 542 insertions(+), 39 deletions(-)
---
base-commit: f3c1d9ef263edfab8d2a273078493bb766dcf8f8
change-id: 20260914-usb-host_v3-bbfea86d1dad
Best regards,
--
Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
next reply other threads:[~2026-10-06 10:34 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 10:34 Andrey Drobyshev [this message]
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 01/12] usb-host: don't leak hostdev FD on open failure #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:37 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 02/12] usb-host: add migration blocker for CPR modes #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:36 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 03/12] usb-host: preserve hostdev FD during CPR migration #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:40 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 04/12] usb-host: factor out usb_host_reap_xfers() #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:38 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 05/12] usb-host: drain in-flight URBs across CPR #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:48 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 06/12] usb-host: re-issue drained URBs if CPR is aborted #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:46 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 07/12] usb-host: skip product-string read on CPR incoming #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:47 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 08/12] usb-host: hand off the device across cpr-transfer #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:54 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 09/12] usb: migrate the interface altsetting #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:52 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 10/12] usb-host: reconfigure endpoints on CPR incoming #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:57 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 11/12] hcd-xhci: resync isochronous endpoints after CPR #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:57 ` no-reply
2026-10-06 10:34 ` [PATCH QEMU HCI-8.0 v6 12/12] usb-host: make CPR migration blocker conditional #VSTOR-137800 Andrey Drobyshev
2026-10-06 10:58 ` no-reply
2026-10-06 11:49 ` [PATCH QEMU HCI-8.0 v6 00/12] usb-host: support CPR migration Andrey Drobyshev
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=20261006-usb-host_v3-v6-0-8688ec9576d1@virtuozzo.com \
--to=andrey.drobyshev@virtuozzo.com \
--cc=den@openvz.org \
--cc=svt-core@virtuozzo.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox