Re: [PATCH v6 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Pasha Tatashin <[email protected]>
| Newsgroups | org.infradead.lists.kexec,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kvack.linux-mm |
|---|---|
| Message-ID | <178173265446.1266136.13359060486033428626.b4-reply@b4> |
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 <[email protected]> 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.