Re: [PATCH v2 02/22] PCI: Add API to track PCI devices preserved across Live Update

From: David Matlack

Date: Mon Feb 23 2026 - 18:10:44 EST


On Mon, Feb 23, 2026 at 2:04 PM Samiullah Khawaja <skhawaja@xxxxxxxxxx> wrote:
> On Thu, Jan 29, 2026 at 09:24:49PM +0000, David Matlack wrote:

> >Drivers can notify the PCI subsystem whenever a device is preserved and
> >unpreserved with the following APIs:
> >
> > pci_liveupdate_outgoing_preserve(pci_dev)
> > pci_liveupdate_outgoing_unpreserve(pci_dev)
>
> nit: Preserve and Unpreserve can only be done from outgoing kernel, maybe
> remove the "outgoing" from the function name.

That's reasonable, I can make that change in v3.

> >+static int pci_flb_preserve(struct liveupdate_flb_op_args *args)
> >+{
> >+ struct pci_dev *dev = NULL;
> >+ int max_nr_devices = 0;
> >+ struct pci_ser *ser;
> >+ unsigned long size;
> >+
> >+ for_each_pci_dev(dev)
> >+ max_nr_devices++;
>
> This will not work for SRIOV as new devices will be registered when
> sriov is enabled and the max will increase. As we are not handling VFs
> with this patch series, this can be fine?

That's right. Since this series does not support VFs
(pci_liveupdate_outgoing_preserve(VF) will return -EINVAL), I dropped
the logic from v1 that included the maximum possible number of VFs in
max_nr_devices.

Once we add support for preserving VFs, we can update this logic.

Another way that pci_liveupdate_outgoing_preserve() could fail due to
running out of room is if hot-plugged devices are preserved. But I
don't think that's an important problem to solve right now.