Re: [PATCH v8 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Samiullah Khawaja <[email protected]>
| Newsgroups | org.kernel.vger.linux-pci,org.infradead.lists.kexec,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> >Signed-off-by: David Matlack <[email protected]> >--- > 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 <[email protected]> Thanks, Sami