From: Pasha Tatashin <pasha.tatashin@soleen.com>
To: David Matlack <dmatlack@google.com>,
Bjorn Helgaas <bhelgaas@google.com>
Cc: kexec@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-pci@vger.kernel.org,
Adithya Jayachandran <ajayachandra@nvidia.com>,
Alexander Graf <graf@amazon.com>,
Alex Williamson <alex@shazbot.org>, Chris Li <chrisl@kernel.org>,
David Rientjes <rientjes@google.com>,
Jacob Pan <jacob.pan@linux.microsoft.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Jonathan Corbet <corbet@lwn.net>,
Josh Hilke <jrhilke@google.com>,
Leon Romanovsky <leonro@nvidia.com>,
Lukas Wunner <lukas@wunner.de>, Mike Rapoport <rppt@kernel.org>,
Parav Pandit <parav@nvidia.com>,
Pasha Tatashin <pasha.tatashin@soleen.com>,
Pranjal Shrivastava <praan@google.com>,
Pratyush Yadav <pratyush@kernel.org>,
Randy Dunlap <rdunlap@infradead.org>,
Saeed Mahameed <saeedm@nvidia.com>,
Samiullah Khawaja <skhawaja@google.com>,
Shuah Khan <skhan@linuxfoundation.org>,
Vipin Sharma <vipinsh@google.com>, William Tu <witu@nvidia.com>,
Yi Liu <yi.l.liu@intel.com>
Subject: Re: [PATCH v10 00/13] PCI: liveupdate: PCI core support for Live Update
Date: Wed, 4 Nov 2026 13:00:22 -0500 [thread overview]
Message-ID: <autxCZPJ9yiE2ucq@google.com> (raw)
In-Reply-To: <20261013162529.1928093-1-dmatlack@google.com>
On 10-13 16:25, David Matlack wrote:
> This series can be found on GitHub:
>
> https://github.com/dmatlack/linux/tree/liveupdate/pci/base/v10
>
> This series introduces support in the PCI core for Live Update, enabling
> drivers to preserve PCI devices across a kexec-based kernel update
> without interrupting the device. This functionality is critical for
> minimizing downtime in environments where PCI devices (e.g., those
> assigned to VMs via VFIO) must continue operating or maintain state
> across a host kernel upgrade.
>
> Specifically, this series allows preserved PCI devices to perform
> uninterrupted memory transactions (DMA) targeting system memory
> (specifically, preserved memfds) across a Live Update. These devices can
> be behind a bridge but must not be VFs. Support for P2P and VF
> preservation will be addressed in future series.
>
> Series Overview
> ---------------
>
> This series implements the following to support PCI device preservation
> across Live Update:
>
> 1. Set up a File-Lifecycle-Bound (FLB) handler to track and preserve
> PCI-specific state (struct pci_ser) across Live Update using Kexec
> Handover (KHO).
>
> 2. Add APIs for drivers to register devices for preservation
> (outgoing) and for the PCI core to identify preserved devices
> during enumeration (incoming)
>
> 3. Automatically preserve all upstream bridges for any preserved
> endpoint. Use reference counting to ensure bridges remain preserved
> as long as any downstream device is preserved.
>
> 4. Guarantee that preserved devices retain the same RequesterID (bus,
> device, function) for the duration of their preservation by
> inheriting secondary bus numbers, subordinate bus numbers, and ARI
> Forwarding Enable on preserved bridges.
>
> 5. Guarantee that memory transactions to/from preserved devices are
> routed consistently by inheriting Access Control Services (ACS)
> flags across a Live Update, from the endpoint up to the root port.
>
> 6. Modify the PCI shutdown path to avoid disabling bus mastering on
> preserved devices, thereby allowing preserved devices to perform
> uninterrupted during kexec for Live Update.
>
> 7. Provide comprehensive documentation for the FLB API, device
> tracking mechanisms, and the division of responsibilities between
> the PCI core, drivers, and userspace.
>
> Merge Plan
> ----------
>
> This series will be merged through liveupdate.git, matching the
> agreed-upon tree in the MAINTAINERS entry for PCI LIVE UPDATE.
>
> Testing
> -------
>
> This series was tested in conjunction with v5 of the VFIO PCI driver
> series:
>
> https://lore.kernel.org/kvm/20260714151505.3466855-1-vipinsh@google.com/
>
> The full set of patches used for testing can be found on GitHub.
>
> https://github.com/dmatlack/linux/tree/liveupdate/pci/base/v10-with-vfio
>
> Testing was performed using the new VFIO selftests:
>
> - vfio_pci_liveupdate_uapi_test
> - vfio_pci_liveupdate_kexec_test
>
> Both tests were run in a QEMU-based VM environment (using a single
> virtio-net PCIe device connected to a root port to exercise bridge
> support) and on bare metal using an Intel EMR server with 8x Intel DSA
> PCIe devices and 1x NVMe device.
>
> Future Work
> -----------
>
> Please see the PCI core Live Update Roadmap:
>
> https://lore.kernel.org/linux-pci/20261001232133.560284-1-dmatlack@google.com/
>
> Changelog
> ---------
>
> v10:
> - Save and restore the ACS Egress Control Vector along with the ACS
> Control register, sizing the save buffer from the HwInit Egress
> Control Vector Size field (Alex) and drop Bjorn's R-b tag
> - Make CONFIG_PCI_LIVEUPDATE depend on 64BIT from the first patch
> rather than adding the dependency later in the series (Pratyush,
> Mike)
> - Reword kernel-doc comments to read better in the HTML docs and
> spell out "reference count" (Mike)
> - Replace the version number at the start of struct pci_ser with
> required_flags and optional_flags, and record the size of struct
> pci_dev_ser, so that the PCI FLB ABI can be extended (LPC BoF)
Hi Bjorn,
I am planning to target this series for the 7.5 merge window through the
liveupdate tree, as we previously agreed. However, there are still 6
patches that lack an Acked-by from you. I believe you might have
reviewed some of them before, but the tags were lost during subsequent
refactoring. Could you please take another look at the following to make
sure everything is in order for us to merge the series:
PCI: liveupdate: Set up FLB handler for the PCI core
PCI: liveupdate: Track incoming preserved PCI devices
PCI: liveupdate: Document driver binding responsibilities
PCI: liveupdate: Auto-preserve upstream bridges across Live Update
PCI: Save and restore the ACS Control register and Egress Control Vector
PCI: liveupdate: Adopt ACS controls in incoming preserved devices
Thanks!
--
Pasha
next prev parent reply other threads:[~2026-11-04 18:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-13 16:25 [PATCH v10 00/13] PCI: liveupdate: PCI core support for Live Update David Matlack
2026-10-13 16:25 ` [PATCH v10 01/13] PCI: liveupdate: Set up FLB handler for the PCI core David Matlack
2026-10-13 16:25 ` [PATCH v10 02/13] PCI: liveupdate: Track outgoing preserved PCI devices David Matlack
2026-10-13 16:25 ` [PATCH v10 03/13] PCI: liveupdate: Track incoming " David Matlack
2026-10-13 16:25 ` [PATCH v10 04/13] PCI: liveupdate: Document driver binding responsibilities David Matlack
2026-10-13 16:25 ` [PATCH v10 05/13] PCI: liveupdate: Auto-preserve upstream bridges across Live Update David Matlack
2026-10-13 16:25 ` [PATCH v10 06/13] PCI: liveupdate: Preserve bus numbers during " David Matlack
2026-10-13 16:25 ` [PATCH v10 07/13] PCI: Refactor matching logic for pci_dev_acs_ops David Matlack
2026-10-13 16:25 ` [PATCH v10 08/13] PCI: Save and restore the ACS Control register and Egress Control Vector David Matlack
2026-10-13 16:25 ` [PATCH v10 09/13] PCI: liveupdate: Adopt ACS controls in incoming preserved devices David Matlack
2026-10-13 16:25 ` [PATCH v10 10/13] PCI: liveupdate: Adopt ARI Forwarding Enable on preserved bridges David Matlack
2026-10-13 16:25 ` [PATCH v10 11/13] PCI: liveupdate: Freeze preservation status during shutdown David Matlack
2026-10-13 16:25 ` [PATCH v10 12/13] PCI: liveupdate: Do not disable bus mastering on preserved devices during kexec David Matlack
2026-10-13 16:25 ` [PATCH v10 13/13] Documentation: PCI: Add documentation for Live Update David Matlack
2026-11-03 19:21 ` [PATCH v10 00/13] PCI: liveupdate: PCI core support " Pasha Tatashin
2026-11-04 13:40 ` Mike Rapoport
2026-11-04 18:00 ` Pasha Tatashin [this message]
2026-11-04 18:06 ` David Matlack
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=autxCZPJ9yiE2ucq@google.com \
--to=pasha.tatashin@soleen.com \
--cc=ajayachandra@nvidia.com \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=chrisl@kernel.org \
--cc=corbet@lwn.net \
--cc=dmatlack@google.com \
--cc=graf@amazon.com \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=jrhilke@google.com \
--cc=kexec@lists.infradead.org \
--cc=leonro@nvidia.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=parav@nvidia.com \
--cc=praan@google.com \
--cc=pratyush@kernel.org \
--cc=rdunlap@infradead.org \
--cc=rientjes@google.com \
--cc=rppt@kernel.org \
--cc=saeedm@nvidia.com \
--cc=skhan@linuxfoundation.org \
--cc=skhawaja@google.com \
--cc=vipinsh@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox