Re: [PATCH v7 01/12] PCI: liveupdate: Set up FLB handler for the PCI core

Bjorn Helgaas <[email protected]> Mon, 27 Jul 2026 14:27:01 -0500
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 <20260727192701.GA1250952@bhelgaas>
On Mon, Jul 27, 2026 at 10:40:52AM -0700, David Matlack wrote:
> On Thu, Jul 23, 2026 at 3:21 PM Bjorn Helgaas <[email protected]> wrote:
> > On Fri, Jul 10, 2026 at 09:26:04PM +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.
> > > ...
> >
> > > +#define pr_fmt(fmt) "PCI: " KBUILD_BASENAME ": " fmt
> >
> > Is KBUILD_BASENAME buying us something important here?  Just from
> > code-reading perspective, it's more work because without some digging
> > I don't know what it will end up looking like in a dmesg log.
> >
> > > +static void pci_flb_unpreserve(struct liveupdate_flb_op_args *args)
> > > +{
> > > +     struct pci_flb_outgoing *outgoing = args->obj;
> > > +
> > > +     WARN_ON(outgoing->ser->nr_devices);
> > > +     kho_block_set_destroy(&outgoing->block_set);
> > > +     kho_unpreserve_free(outgoing->ser);
> > > +     kfree(outgoing);
> > > +     pr_debug("Unpreserved struct pci_ser\n");
> >
> > If this pr_debug() is useful, maybe it should include an address and
> > there should be a corresponding pr_debug() on the preserve side so we
> > could find things in a crashdump?
> >
> > > +int pci_liveupdate_register_flb(struct liveupdate_file_handler *fh)
> > > +{
> > > +     pr_debug("Registering file handler \"%s\"\n", fh->compatible);
> >
> > Is fh->compatible enough to identify a driver?
> 
> Not necessarily. VFIO could theoretically have one file handler that
> handles all the vfio-pci variant drivers. But I suspect we'll end up
> with 1 fh per driver in practice.
> 
> Are you thinking about how we can ensure devices are bound to
> compatible drivers after Live Update?

No, I don't understand enough to worry about things like that.  I'm
just wondering if there's enough info in the message to be useful,
since fh->compatible is the only text that's variable.  Same reason I
asked about the "Unpreserved struct pci_ser" message above.  E.g., if
a user reports these messages, will we need more information to debug
it, or is the message itself enough?