From: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
To: svt-core@virtuozzo.com
Cc: den@openvz.org
Subject: Re: [PATCH QEMU HCI-8.0 v6 00/12] usb-host: support CPR migration
Date: Tue, 6 Oct 2026 14:49:11 +0300 [thread overview]
Message-ID: <d9a62249-8fa7-41d9-9012-1882ae47e394@virtuozzo.com> (raw)
In-Reply-To: <20261006-usb-host_v3-v6-0-8688ec9576d1@virtuozzo.com>
Some of the issues reported by Sashiko appear to be real, I'll fix them.
On 10/6/26 1:34 PM, Andrey Drobyshev wrote:
> 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>
>
prev parent reply other threads:[~2026-10-06 11:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 10:34 Andrey Drobyshev
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 ` Andrey Drobyshev [this message]
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=d9a62249-8fa7-41d9-9012-1882ae47e394@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