Virtuozzo QEMU development (svt-core@virtuozzo.com)
 help / color / mirror / Atom feed
From: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
To: svt-core@virtuozzo.com
Cc: andrey.drobyshev@virtuozzo.com
Subject: [PATCH QEMU HCI-8.1 v3 00/28] vfio: support qemu-update with passed through GPU's and vGPU's #VSTOR-103860
Date: Fri, 16 Oct 2026 18:25:58 +0300	[thread overview]
Message-ID: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> (raw)

v2 -> v3:

Fixes of the issues found by Sashiko AI review.

- Patch 1 (NEW) ("VZ: migration/cpr-exec: fix Error leak in preserve_ram()")

- Patch 2 (NEW) ("migration/cpr-exec: restore RAM write access if exec fails"):
  RAM was left read-only after a failed exec

- Patch 3 (NEW) ("vfio/region: create BAR dma-bufs with O_CLOEXEC"): every
  cpr-exec leaked the BAR dma-buf fds into the new QEMU

- Patch 11 -> 14 ("migration: yank: Move register instance earlier"): don't
  abort on a duplicate yank instance when migrate is issued on a target
  which has postcopy advised; such a migrate is refused instead

- Patch 17 -> 20 ("migration/cpr: add cpr_is_in_progress()"): false for
  snapshots, which run with the mode parameter still set

- Patch 18 -> 21 ("vfio/migration: don't migrate device state during CPR"):
  all sites, incl. switchover ack, are gated on cpr_is_in_progress();
  multifd_transfer is reset at cleanup, so a stale value doesn't let the
  multifd save thread run during CPR

- Patch 19 -> 22 ("vfio/listener: skip dirty page tracking during CPR"):
  gated on cpr_is_in_progress() instead of the mode alone

- Patch 21 -> 24 ("VZ: migration/cpr-exec: abort cpr-exec if memory can't be
  preserved"): single failure path, restores RAM write access too

- Patch 22 -> 25 ("VZ: migration/cpr-exec: take the vhost-net devices back if
  exec fails"): only the devices which were actually released are taken
  back

- Patch 26 (NEW) ("VZ: migration/cpr-exec: don't exec if a vhost-net device
  can't be released"): previously the exec went ahead with a device
  still owned by the old QEMU

- Patch 23 -> 27 ("VZ: vfio/region: preserve BAR mappings across cpr-exec"):
  the cpr-transfer blocker is registered at device attach and reported
  through errp; missing saved mappings are mmapped anew instead of being
  an error; the saved mappings are named by device, region and index

v2: http://lore.virtuozzo.com/20261013-vfio_v1-v2-0-433455c0a294@virtuozzo.com
---
Akihiko Odaki (1):
      vfio/pci: Grow buffer in vfio_pci_host_match()

Andrey Drobyshev (14):
      VZ: migration/cpr-exec: fix Error leak in preserve_ram()
      migration/cpr-exec: restore RAM write access if exec fails
      vfio/region: create BAR dma-bufs with O_CLOEXEC
      kvm: tolerate ioctls after kvm_close()
      kvm: fix coalesced MMIO flush racing with kvm_close()
      migration/cpr: add cpr_is_in_progress()
      vfio/migration: don't migrate device state during CPR
      vfio/listener: skip dirty page tracking during CPR
      VZ: vfio/cpr: don't close KVM on cpr-exec
      VZ: migration/cpr-exec: abort cpr-exec if memory can't be preserved
      VZ: migration/cpr-exec: take the vhost-net devices back if exec fails
      VZ: migration/cpr-exec: don't exec if a vhost-net device can't be released
      VZ: vfio/region: preserve BAR mappings across cpr-exec #VSTOR-103860
      VZ: migration/cpr-exec: allow cpr-exec with VFIO devices #VSTOR-103860

Arun Menon (1):
      migration: Fix regression of passing error_fatal into vmstate_load_state()

Cédric Le Goater (2):
      vfio/pci: Reject invalid MSI-X Table and PBA BIR values
      vfio/pci: Fix information leak in vfio_rom_read()

Fabiano Rosas (3):
      migration: yank: Move register instance earlier
      migration: Free cpr-transfer MigrationAddress along with gsource
      migration: Move CPR HUP watch to cpr-transfer.c

Igor Mammedov (1):
      q35: Fix migration of SMRAM state

Mario Casquero (1):
      vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom()

Markus Armbruster (1):
      migration: Plug memory leaks after migrate_set_error()

Peter Xu (1):
      migration: Fix crash on second migration when cancel early

Tycho Andersen (AMD) (1):
      hw/vfio: Fix liveness check in vfio_connect_kvm_msi_virq()

Vladimir Sementsov-Ogievskiy (1):
      migration: vmstate_save_state_v: fix double error_setg

Yanfei Xu (1):
      migration: ensure APIC is loaded prior to VFIO PCI devices

 accel/kvm/kvm-all.c           | 23 ++++++++++
 hw/display/virtio-gpu.c       | 22 +++++++---
 hw/i386/kvm/apic.c            |  6 ++-
 hw/intc/apic_common.c         |  1 +
 hw/net/vhost_net.c            | 41 ++++++++++++++++--
 hw/pci-host/q35.c             | 25 +++++------
 hw/pci/pci.c                  | 15 ++++++-
 hw/s390x/virtio-ccw.c         | 17 +++++++-
 hw/scsi/spapr_vscsi.c         | 10 ++++-
 hw/vfio/cpr.c                 | 11 +++--
 hw/vfio/device.c              | 29 ++++++++++---
 hw/vfio/listener.c            |  6 +++
 hw/vfio/migration-multifd.c   |  2 +
 hw/vfio/migration.c           | 38 ++++++++++++++++-
 hw/vfio/pci.c                 | 25 +++++++----
 hw/vfio/region.c              | 47 +++++++++++++++++++-
 hw/virtio/virtio-mmio.c       | 15 ++++++-
 hw/virtio/virtio-pci.c        | 15 ++++++-
 hw/virtio/virtio.c            | 10 +++--
 include/hw/vfio/vfio-cpr.h    |  1 +
 include/hw/vfio/vfio-device.h |  2 -
 include/hw/virtio/vhost.h     |  2 +
 include/migration/cpr.h       |  7 +++
 include/migration/vmstate.h   |  1 +
 include/net/vhost_net.h       |  3 +-
 migration/cpr-exec.c          | 40 ++++++++++++++---
 migration/cpr-transfer.c      | 33 +++++++++++++++
 migration/cpr.c               | 22 ++++++++++
 migration/migration.c         | 99 ++++++++++++++++++++++---------------------
 migration/migration.h         |  5 +++
 migration/multifd.c           |  2 +
 migration/vmstate.c           |  7 ++-
 tests/qtest/q35-test.c        |  6 ---
 33 files changed, 464 insertions(+), 124 deletions(-)
---
base-commit: f3c1d9ef263edfab8d2a273078493bb766dcf8f8
change-id: 20261009-vfio_v1-a176cddd6b64

Best regards,
--  
Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>


             reply	other threads:[~2026-10-16 15:26 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 15:25 Andrey Drobyshev [this message]
2026-10-16 15:25 ` [PATCH QEMU HCI-8.1 v3 01/28] VZ: migration/cpr-exec: fix Error leak in preserve_ram() Andrey Drobyshev
2026-10-16 15:28   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 02/28] migration/cpr-exec: restore RAM write access if exec fails Andrey Drobyshev
2026-10-16 15:28   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 03/28] vfio/region: create BAR dma-bufs with O_CLOEXEC Andrey Drobyshev
2026-10-16 15:30   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 04/28] migration: Plug memory leaks after migrate_set_error() Andrey Drobyshev
2026-10-16 15:29   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 05/28] hw/vfio: Fix liveness check in vfio_connect_kvm_msi_virq() Andrey Drobyshev
2026-10-16 15:30   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 06/28] vfio/pci: Reject invalid MSI-X Table and PBA BIR values Andrey Drobyshev
2026-10-16 15:30   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 07/28] vfio/pci: Fix information leak in vfio_rom_read() Andrey Drobyshev
2026-10-16 15:31   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 08/28] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Andrey Drobyshev
2026-10-16 15:32   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 09/28] vfio/pci: Grow buffer in vfio_pci_host_match() Andrey Drobyshev
2026-10-16 15:31   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 10/28] q35: Fix migration of SMRAM state Andrey Drobyshev
2026-10-16 15:33   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 11/28] migration: ensure APIC is loaded prior to VFIO PCI devices Andrey Drobyshev
2026-10-16 15:32   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 12/28] migration: Fix regression of passing error_fatal into vmstate_load_state() Andrey Drobyshev
2026-10-16 15:35   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 13/28] migration: vmstate_save_state_v: fix double error_setg Andrey Drobyshev
2026-10-16 15:38   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 14/28] migration: yank: Move register instance earlier Andrey Drobyshev
2026-10-16 15:41   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 15/28] migration: Free cpr-transfer MigrationAddress along with gsource Andrey Drobyshev
2026-10-16 15:39   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 16/28] migration: Move CPR HUP watch to cpr-transfer.c Andrey Drobyshev
2026-10-16 15:40   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 17/28] migration: Fix crash on second migration when cancel early Andrey Drobyshev
2026-10-16 15:44   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 18/28] kvm: tolerate ioctls after kvm_close() Andrey Drobyshev
2026-10-16 15:44   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 19/28] kvm: fix coalesced MMIO flush racing with kvm_close() Andrey Drobyshev
2026-10-16 15:46   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 20/28] migration/cpr: add cpr_is_in_progress() Andrey Drobyshev
2026-10-16 15:46   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 21/28] vfio/migration: don't migrate device state during CPR Andrey Drobyshev
2026-10-16 15:55   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 22/28] vfio/listener: skip dirty page tracking " Andrey Drobyshev
2026-10-16 15:50   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 23/28] VZ: vfio/cpr: don't close KVM on cpr-exec Andrey Drobyshev
2026-10-16 15:52   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 24/28] VZ: migration/cpr-exec: abort cpr-exec if memory can't be preserved Andrey Drobyshev
2026-10-16 15:55   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 25/28] VZ: migration/cpr-exec: take the vhost-net devices back if exec fails Andrey Drobyshev
2026-10-16 15:58   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 26/28] VZ: migration/cpr-exec: don't exec if a vhost-net device can't be released Andrey Drobyshev
2026-10-16 15:56   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 27/28] VZ: vfio/region: preserve BAR mappings across cpr-exec #VSTOR-103860 Andrey Drobyshev
2026-10-16 16:02   ` no-reply
2026-10-16 15:26 ` [PATCH QEMU HCI-8.1 v3 28/28] VZ: migration/cpr-exec: allow cpr-exec with VFIO devices #VSTOR-103860 Andrey Drobyshev
2026-10-16 15:59   ` no-reply

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=20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com \
    --to=andrey.drobyshev@virtuozzo.com \
    --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