[PATCH v8 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Samiullah Khawaja
skhawaja at google.com
Mon Aug 17 14:12:12 PDT 2026
On Tue, Jul 28, 2026 at 10:09:55PM +0000, David Matlack wrote:
>Set up a File-Lifecycle-Bound (FLB) handler for the PCI core to enable
>it to participate in the preservation of PCI devices across Live Update.
>Essentially, this commit enables the PCI core to allocate a struct
>(struct pci_ser) and preserve it across a Live Update whenever at least
>one device is preserved.
>
>Preserving PCI devices across Live Update is built on top of the Live
>Update Orchestrator's (LUO) support for file preservation. Drivers are
>expected to expose a file to userspace to represent a single PCI device
>and support preservation of that file. This is intended primarily to
>support preservation of PCI devices bound to VFIO drivers.
>
>This commit enables drivers to register their liveupdate_file_handler
>with the PCI core so that the PCI core can do its own tracking and
>enforcement of which devices are preserved.
>
> pci_liveupdate_register_flb(driver_file_handler);
> pci_liveupdate_unregister_flb(driver_file_handler);
>
>When the first file (with a handler registered with the PCI core) is
>preserved, the PCI core will be notified to allocate its tracking struct
>(pci_ser). When the last file is unpreserved (i.e. preservation
>cancelled) the PCI core will be notified to free struct pci_ser.
>
>This struct is preserved across a Live Update using KHO and can be
>fetched by the PCI core during early boot (e.g. during device
>enumeration) so that it knows which devices were preserved.
>
>Note: This commit only allocates struct pci_ser and preserves it across
>Live Update. A subsequent commit will add an API for drivers to tell the
>PCI core exactly which devices are being preserved.
>
>Note: There is no reason to check for kho_is_enabled() since it can be
>assumed to return true. If KHO was not enabled then Live Update would
>not be enabled and these routines would never run.
>
>Reviewed-by: Pranjal Shrivastava <praan at google.com>
>Signed-off-by: David Matlack <dmatlack at google.com>
>---
> Documentation/core-api/liveupdate.rst | 4 +
> MAINTAINERS | 13 +++
> drivers/pci/Kconfig | 15 +++
> drivers/pci/Makefile | 1 +
> drivers/pci/liveupdate.c | 158 ++++++++++++++++++++++++++
> include/linux/kho/abi/pci.h | 63 ++++++++++
> include/linux/pci.h | 1 +
> include/linux/pci_liveupdate.h | 30 +++++
> 8 files changed, 285 insertions(+)
> create mode 100644 drivers/pci/liveupdate.c
> create mode 100644 include/linux/kho/abi/pci.h
> create mode 100644 include/linux/pci_liveupdate.h
>
Reviewed-by: Samiullah Khawaja <skhawaja at google.com>
Thanks,
Sami
More information about the kexec
mailing list