Re: [PATCH v8 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
From: Samiullah Khawaja
Date: Mon Aug 17 2026 - 17:13:38 EST
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@xxxxxxxxxx>
Signed-off-by: David Matlack <dmatlack@xxxxxxxxxx>
---
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@xxxxxxxxxx>
Thanks,
Sami