[PATCH v6 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Pasha Tatashin
pasha.tatashin at soleen.com
Wed Jun 17 14:44:14 PDT 2026
On 2026-06-15 22:22:08+00:00, David Matlack wrote:
> On 2026-06-12 05:15 AM, Pasha Tatashin wrote:
>
> > On Fri, 22 May 2026 20:23:59 +0000, David Matlack <dmatlack at google.com> wrote:
>
>
>
> > > + * PCI device preservation across Live Update is built on top of the Live Update
> >
> > I prefer to just use acronyms FLB, and LUO, but have links to the actual
> > documentations about them.
> >
> > So, something like this:
> >
> > * :ref:`FLB <flb>` Data
> > * =====================
> > *
> > * PCI device preservation across Live Update is built on top of the
> > * :ref:`LUO <luo>` support for file preservation across kexec. Drivers
> >
> > And also add _luo and _flb to Documentation/core-api/liveupdate.rst
> >
> > .. _luo:
> >
> > ========================
> > Live Update Orchestrator
> > ========================
> >
> > .. _flb:
>
> Will do.
>
> I guess I will need to add another patch to add the link references to
> liveupdate.rst?
Yes, it can be a separate patch, but adding to this patch is also, OK.
> > LUO File Lifecycle Bound Global Data
> > ====================================
> >
> >
> > Nit, may be:
>
> Did you have a suggestion here that got lost?
Yeah, I meant:
#define pr_fmt(fmt) "PCI: " KBUILD_BASENAME ": " fmt
>
> > Please sort alphabetically.
>
> Will do.
>
> > I think, we want to use kho_block [1] (it is in liveupdate/next branch)
> > to allow number of supported devices to be dynamic.
> >
> > To support this, we would redefine the ABI and tracking structures like
> > so:
> >
> > /* include/linux/kho/abi/pci.h */
> > struct pci_ser {
> > u64 devices; /* Phys address of the first block header of kho_block_set */
> > u64 nr_devices; /* Total count of active preserved devices */
> > } __packed;
> >
> > /* drivers/pci/liveupdate.c */
> > struct pci_flb_outgoing {
> > struct pci_ser *ser; /* Points to the FDT/KHO-allocated ABI struct */
> > struct kho_block_set block_set; /* Controls the active blocks on the fly */
> > };
> >
> > In __pci_liveupdate_preserve_device() , we would search for
> > and reuse any inactive pci_dev_ser slot first, and only call
> > kho_block_set_grow() to expand if no inactive slots are available.
> >
> > In pci_liveupdate_unpreserve_device(), we would simply
> > mark the pci_dev_ser as inactive.
>
> Makes sense at a high level. I'll work on switching kho_block for v7 and
> get back to you if I hit any issues.
More information about the kexec
mailing list