From: "Yanjun.Zhu" <yanjun.zhu@linux.dev>
To: Vipin Sharma <vipinsh@google.com>,
kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, kvm@vger.kernel.org,
linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Cc: ajayachandra@nvidia.com, alex@shazbot.org, amastro@fb.com,
ankita@nvidia.com, apopple@nvidia.com, bhelgaas@google.com,
chrisl@kernel.org, christian.koenig@amd.com, corbet@lwn.net,
dmatlack@google.com, graf@amazon.com,
jacob.pan@linux.microsoft.com, jgg@nvidia.com, jgg@ziepe.ca,
jrhilke@google.com, julianr@linux.ibm.com, kees@kernel.org,
kevin.tian@intel.com, leon@kernel.org, leonro@nvidia.com,
lukas@wunner.de, mattev@meta.com, michal.winiarski@intel.com,
parav@nvidia.com, pasha.tatashin@soleen.com, praan@google.com,
pratyush@kernel.org, rananta@google.com, rientjes@google.com,
rodrigo.vivi@intel.com, rppt@kernel.org, saeedm@nvidia.com,
schnelle@linux.ibm.com, skhan@linuxfoundation.org,
skhawaja@google.com, vivek.kasireddy@intel.com, witu@nvidia.com,
yi.l.liu@intel.com
Subject: Re: [PATCH v5 00/20] vfio/pci: Base Live Update support for VFIO
Date: Thu, 16 Jul 2026 16:24:31 -0700 [thread overview]
Message-ID: <2c03ac97-60a6-4352-a942-27dcebae8d22@linux.dev> (raw)
In-Reply-To: <20260714151505.3466855-1-vipinsh@google.com>
[-- Attachment #1: Type: text/plain, Size: 7785 bytes --]
On 7/14/26 8:14 AM, Vipin Sharma wrote:
> Hello,
>
> This series can be found on Github:
>
> https://github.com/shvipin/linux vfio/liveupdate/v5
>
> This series provides the base support to enable Live Update feature for
> VFIO PCI devices using the Live Update Orchestrator (LUO) and Kexec
> Handover (KHO).
>
> Overview
> --------
>
> This series makes the following changes to support VFIO Live Update:
>
> - Puts VFIO Live Update support behind the CONFIG_VFIO_PCI_LIVEUPDATE
> config option (which requires CONFIG_VFIO_DEVICE_CDEV).
> - Preserves VFIO cdev device FDs across a kexec Live Update session via
> LUO/KHO.
> - Enforces that incoming preserved devices can only be retrieved via
> LIVEUPDATE_SESSION_RETRIEVE_FD post-kexec (preventing legacy
> group/cdev opens from accessing uninitialized state).
> - Quiesces the device prior to kexec in freeze() by resetting hardware,
> disabling bus mastering, and marking the device frozen to reject
> post-freeze IO/MMIO.
> - Includes VFIO selftests (uapi & kexec tests with continuous DMA
> checks) and kernel documentation.
>
> VFIO PCI Live Update Roadmap
> ----------------------------
>
> We are planning to add VFIO PCI Live Update support in phases. Since full
> support of this feature will come in phase, VFIO PCI Liveupdate is
> controlled by CONFIG_VFIO_PCI_LIVEUPDATE config option.
>
> This series is phase 1 below:
>
> 1. PCIe function (non-VF) preserved across Live Update without changing
> BDF
> 2. PCIe function (non-VF) preserved across Live Update without resetting
> 3. PCIe function (non-VF) preserved across Live Update with continuous
> DMA (noiommu)
> 4. PCIe function (non-VF) preserved across Live Update with continuous
> DMA (iommufd)
> 5. PCIe VF preserved across Live Update with continuous DMA (iommufd)
>
> Dependencies
> ------------
>
> This series has following dependencies as shown in the diagram
>
> |---------------------------|
> | VFIO v5 | <--- Sent in this series.
> |---------------------------|
> | Liveupdate Selftests[1] |
> |---------------------------|
> | PCI v7 [2] |
> |---------------------------|
>
> [1]https://lore.kernel.org/all/20260511201155.1488670-1-vipinsh@google.com/
> These selftests changes are needed by other selftests also (iommu,
> kvm), so, I have sent them separately.
>
> [2]https://lore.kernel.org/linux-pci/20260710212616.1351130-1-dmatlack@google.com/
> This is the PCI v7, which adds the live update support in PCI core.
>
> Github branch I have mentioned at the top has all of these dependencies.
>
> Testing
> -------
>
> Tested using VFIO Live Update selftests in both QEMU and bare-metal
> environment (Intel DSA PCIe device).
I want to make tests VFIO Live Update selftests in QEMU. But how to
select a PCIe device?
what device do the PCI ID 0000:00:04.0 and 0000:6a:01.0 mean in the
following testcase?
Zhu Yanjun
>
> $ ./setup.sh 0000:00:04.0
> $ ./vfio_pci_liveupdate_kexec_test --stage 1 0000:6a:01.0
> $ kexec --reuse-cmdline -l -s /boot/vmlinuz
> $ kexec -e
> $ ./setup.sh 0000:00:04.0
> $ ./vfio_pci_liveupdate_kexec_test --stage 2 0000:6a:01.0
>
> Kernel command line options used:
> - liveupdate=on
> - kho=on
> - vfio_iommu_type1.allow_unsafe_interrupts=Y
> - vfio_pci.enable_sriov=Y
> - vfio_pci.disable_denylist=Y
> - vfio.enable_unsafe_noiommu_mode=Y
>
>
> Changelog
> ---------
>
> v5:
> - Addressed Sashiko feedback.
> - Removed condition to disable CONFIG_VFIO_PCI_DMABUF.
> - Expanded vfio_find_device() helper to safely discover a registered
> vfio_device by matching criteria. Internal Sashiko instance found
> data race.
> - Updated selftests to latest changes in VFIO selftests.
> - Rebased on top of PCI Live Update series v7.
>
> v4:https://lore.kernel.org/kvm/20260511234802.2280368-1-vipinsh@google.com/
>
> v3:https://lore.kernel.org/kvm/20260323235817.1960573-1-dmatlack@google.com/
>
> v2:https://lore.kernel.org/kvm/20260129212510.967611-1-dmatlack@google.com/
>
> v1:https://lore.kernel.org/kvm/20251126193608.2678510-1-dmatlack@google.com/
>
> rfc:https://lore.kernel.org/kvm/20251018000713.677779-1-vipinsh@google.com/
>
>
> David Matlack (7):
> vfio: Enforce preserved devices are retrieved via
> LIVEUPDATE_SESSION_RETRIEVE_FD
> docs: liveupdate: Add documentation for VFIO PCI
> vfio: selftests: Add vfio_pci_liveupdate_uapi_test
> vfio: selftests: Add Makefile support for TEST_GEN_PROGS_EXTENDED
> vfio: selftests: Expose iommu_modes to tests
> vfio: selftests: Verify that opening VFIO device fails during Live
> Update
> vfio: selftests: Add continuous DMA to vfio_pci_liveupdate_kexec_test
>
> Vipin Sharma (13):
> vfio/pci: Factor out the reset logic in VFIO PCI device close path
> vfio: Export various helpers from VFIO
> vfio/pci: Export vfio_pci_dma_buf_move for vfio-pci module
> liveupdate: Export symbols needed by modules
> vfio/pci: Register a file handler with Live Update Orchestrator
> vfio/pci: Preserve vfio-pci device files across Live Update
> vfio: Introduce vfio_find_device() helper
> vfio: Refactor vfio_device_fops_cdev_open()
> vfio: Add API to open cdev device for Live Update restore
> vfio/pci: Retrieve preserved device files after Live Update
> vfio: selftests: Build liveupdate library in VFIO selftests
> vfio: selftests: Initialize vfio_pci_device using a VFIO cdev FD
> vfio: selftests: Add vfio_pci_liveupdate_kexec_test
>
> Documentation/core-api/liveupdate.rst | 1 +
> .../driver-api/vfio_pci_liveupdate.rst | 23 ++
> MAINTAINERS | 2 +
> drivers/vfio/device_cdev.c | 67 +++-
> drivers/vfio/group.c | 9 +
> drivers/vfio/pci/Kconfig | 12 +
> drivers/vfio/pci/Makefile | 1 +
> drivers/vfio/pci/vfio_pci.c | 13 +-
> drivers/vfio/pci/vfio_pci_config.c | 3 +
> drivers/vfio/pci/vfio_pci_core.c | 119 +++---
> drivers/vfio/pci/vfio_pci_dmabuf.c | 1 +
> drivers/vfio/pci/vfio_pci_liveupdate.c | 340 ++++++++++++++++++
> drivers/vfio/pci/vfio_pci_priv.h | 28 ++
> drivers/vfio/vfio.h | 18 +
> drivers/vfio/vfio_main.c | 67 +++-
> include/linux/kho/abi/vfio_pci.h | 43 +++
> include/linux/vfio.h | 12 +
> include/linux/vfio_pci_core.h | 3 +
> kernel/liveupdate/luo_file.c | 2 +
> tools/testing/selftests/vfio/Makefile | 23 +-
> .../vfio/lib/include/libvfio/iommu.h | 2 +
> .../lib/include/libvfio/vfio_pci_device.h | 3 +
> tools/testing/selftests/vfio/lib/iommu.c | 4 +-
> .../selftests/vfio/lib/vfio_pci_device.c | 25 +-
> .../vfio/vfio_pci_liveupdate_kexec_test.c | 256 +++++++++++++
> .../vfio/vfio_pci_liveupdate_uapi_test.c | 97 +++++
> 26 files changed, 1097 insertions(+), 77 deletions(-)
> create mode 100644 Documentation/driver-api/vfio_pci_liveupdate.rst
> create mode 100644 drivers/vfio/pci/vfio_pci_liveupdate.c
> create mode 100644 include/linux/kho/abi/vfio_pci.h
> create mode 100644 tools/testing/selftests/vfio/vfio_pci_liveupdate_kexec_test.c
> create mode 100644 tools/testing/selftests/vfio/vfio_pci_liveupdate_uapi_test.c
>
>
> base-commit: cbf37fff757e87376e80e11a8378393a8f25145f
> prerequisite-patch-id: 85705fb54d3065efe1d87ab4b69e828a9f3404e7
> prerequisite-patch-id: a33ae79b5fc0259bd013b430c18cc3d14a678599
[-- Attachment #2: Type: text/html, Size: 8888 bytes --]
next prev parent reply other threads:[~2026-07-16 23:24 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 15:14 [PATCH v5 00/20] vfio/pci: Base Live Update support for VFIO Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 01/20] vfio/pci: Factor out the reset logic in VFIO PCI device close path Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 02/20] vfio: Export various helpers from VFIO Vipin Sharma
2026-07-14 15:30 ` sashiko-bot
2026-07-14 15:14 ` [PATCH v5 03/20] vfio/pci: Export vfio_pci_dma_buf_move for vfio-pci module Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 04/20] liveupdate: Export symbols needed by modules Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 05/20] vfio/pci: Register a file handler with Live Update Orchestrator Vipin Sharma
2026-07-14 15:28 ` sashiko-bot
2026-07-14 15:14 ` [PATCH v5 06/20] vfio/pci: Preserve vfio-pci device files across Live Update Vipin Sharma
2026-07-14 15:36 ` sashiko-bot
2026-07-14 15:14 ` [PATCH v5 07/20] vfio: Introduce vfio_find_device() helper Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 08/20] vfio: Refactor vfio_device_fops_cdev_open() Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 09/20] vfio: Add API to open cdev device for Live Update restore Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 10/20] vfio/pci: Retrieve preserved device files after Live Update Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 11/20] vfio: Enforce preserved devices are retrieved via LIVEUPDATE_SESSION_RETRIEVE_FD Vipin Sharma
2026-07-14 15:28 ` sashiko-bot
2026-07-14 15:14 ` [PATCH v5 12/20] docs: liveupdate: Add documentation for VFIO PCI Vipin Sharma
2026-07-14 15:14 ` [PATCH v5 13/20] vfio: selftests: Build liveupdate library in VFIO selftests Vipin Sharma
2026-07-14 15:20 ` sashiko-bot
2026-07-14 15:14 ` [PATCH v5 14/20] vfio: selftests: Add vfio_pci_liveupdate_uapi_test Vipin Sharma
2026-07-14 15:44 ` sashiko-bot
2026-07-14 15:15 ` [PATCH v5 15/20] vfio: selftests: Initialize vfio_pci_device using a VFIO cdev FD Vipin Sharma
2026-07-14 15:15 ` [PATCH v5 16/20] vfio: selftests: Add Makefile support for TEST_GEN_PROGS_EXTENDED Vipin Sharma
2026-07-14 15:15 ` [PATCH v5 17/20] vfio: selftests: Add vfio_pci_liveupdate_kexec_test Vipin Sharma
2026-07-14 15:35 ` sashiko-bot
2026-07-14 15:15 ` [PATCH v5 18/20] vfio: selftests: Expose iommu_modes to tests Vipin Sharma
2026-07-14 15:15 ` [PATCH v5 19/20] vfio: selftests: Verify that opening VFIO device fails during Live Update Vipin Sharma
2026-07-14 15:42 ` sashiko-bot
2026-07-14 15:15 ` [PATCH v5 20/20] vfio: selftests: Add continuous DMA to vfio_pci_liveupdate_kexec_test Vipin Sharma
2026-07-14 15:37 ` sashiko-bot
2026-07-16 23:24 ` Yanjun.Zhu [this message]
2026-07-17 1:22 ` [PATCH v5 00/20] vfio/pci: Base Live Update support for VFIO Yanjun.Zhu
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=2c03ac97-60a6-4352-a942-27dcebae8d22@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=ajayachandra@nvidia.com \
--cc=alex@shazbot.org \
--cc=amastro@fb.com \
--cc=ankita@nvidia.com \
--cc=apopple@nvidia.com \
--cc=bhelgaas@google.com \
--cc=chrisl@kernel.org \
--cc=christian.koenig@amd.com \
--cc=corbet@lwn.net \
--cc=dmatlack@google.com \
--cc=graf@amazon.com \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=jgg@ziepe.ca \
--cc=jrhilke@google.com \
--cc=julianr@linux.ibm.com \
--cc=kees@kernel.org \
--cc=kevin.tian@intel.com \
--cc=kexec@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=leonro@nvidia.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lukas@wunner.de \
--cc=mattev@meta.com \
--cc=michal.winiarski@intel.com \
--cc=parav@nvidia.com \
--cc=pasha.tatashin@soleen.com \
--cc=praan@google.com \
--cc=pratyush@kernel.org \
--cc=rananta@google.com \
--cc=rientjes@google.com \
--cc=rodrigo.vivi@intel.com \
--cc=rppt@kernel.org \
--cc=saeedm@nvidia.com \
--cc=schnelle@linux.ibm.com \
--cc=skhan@linuxfoundation.org \
--cc=skhawaja@google.com \
--cc=vipinsh@google.com \
--cc=vivek.kasireddy@intel.com \
--cc=witu@nvidia.com \
--cc=yi.l.liu@intel.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 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.