From: David Matlack <dmatlack@google.com>
To: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: kexec@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-pci@vger.kernel.org,
Adithya Jayachandran <ajayachandra@nvidia.com>,
Alexander Graf <graf@amazon.com>,
Alex Williamson <alex@shazbot.org>,
Bjorn Helgaas <bhelgaas@google.com>, Chris Li <chrisl@kernel.org>,
David Rientjes <rientjes@google.com>,
Jacob Pan <jacob.pan@linux.microsoft.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Jonathan Corbet <corbet@lwn.net>, Josh Hilke <jrhilke@google.com>,
Leon Romanovsky <leonro@nvidia.com>,
Lukas Wunner <lukas@wunner.de>, Mike Rapoport <rppt@kernel.org>,
Parav Pandit <parav@nvidia.com>,
Pranjal Shrivastava <praan@google.com>,
Pratyush Yadav <pratyush@kernel.org>,
Saeed Mahameed <saeedm@nvidia.com>,
Samiullah Khawaja <skhawaja@google.com>,
Shuah Khan <skhan@linuxfoundation.org>,
Vipin Sharma <vipinsh@google.com>, William Tu <witu@nvidia.com>,
Yi Liu <yi.l.liu@intel.com>
Subject: Re: [PATCH v6 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Date: Mon, 15 Jun 2026 22:22:08 +0000 [thread overview]
Message-ID: <ajB7EA4tAKqj5XV0@google.com> (raw)
In-Reply-To: <178124130274.908199.14827357870284807134.b4-review@b4>
On 2026-06-12 05:15 AM, Pasha Tatashin wrote:
> On Fri, 22 May 2026 20:23:59 +0000, David Matlack <dmatlack@google.com> wrote:
> > + * PCI device preservation across Live Update is built on top of the Live Update
> > + * Orchestrator's (LUO) support for file preservation across kexec. Drivers
>
> 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?
>
> LUO File Lifecycle Bound Global Data
> ====================================
>
> > [ ... skip 17 lines ... ]
> > + *
> > + * * ``pci_liveupdate_register_flb(driver_file_handler)``
> > + * * ``pci_liveupdate_unregister_flb(driver_file_handler)``
> > + */
> > +
> > +#define pr_fmt(fmt) "PCI: liveupdate: " fmt
>
> Nit, may be:
Did you have a suggestion here that got lost?
>
> > +
> > +#include <linux/io.h>
> > +#include <linux/kexec_handover.h>
> > +#include <linux/kho/abi/pci.h>
> > +#include <linux/liveupdate.h>
> > +#include <linux/mutex.h>
> > +#include <linux/mm.h>
>
> Please sort alphabetically.
Will do.
>
> > [ ... skip 12 lines ... ]
> > + * future to increase the chances that there is enough room to preserve
> > + * devices that are not yet present on the system (e.g. VFs, hot-plugged
> > + * devices).
> > + */
> > + for_each_pci_dev(dev)
> > + max_nr_devices++;
>
> 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.
>
> >
> > diff --git a/include/linux/pci_liveupdate.h b/include/linux/pci_liveupdate.h
> > new file mode 100644
> > index 000000000000..8ec98beefcb4
> > --- /dev/null
> > +++ b/include/linux/pci_liveupdate.h
> > @@ -0,0 +1,30 @@
> > [ ... skip 24 lines ... ]
> > +static inline void pci_liveupdate_unregister_flb(struct liveupdate_file_handler *fh)
> > +{
> > +}
> > +#endif
> > +
> > +#endif /* LINUX_PCI_LIVEUPDATE_H */
>
> [1] https://lore.kernel.org/all/20260603154402.468928-1-pasha.tatashin@soleen.com/
>
> Preserving: In __pci_liveupdate_preserve_device() , we would search for
> Unpreserving: In pci_liveupdate_unpreserve_device(), we would simply
>
> Preserving: In __pci_liveupdate_preserve_device() , we would search for
> Unpreserving: In pci_liveupdate_unpreserve_device(), we would simply
>
> --
> Pasha Tatashin <pasha.tatashin@soleen.com>
next prev parent reply other threads:[~2026-06-15 22:22 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 20:23 [PATCH v6 00/12] PCI: liveupdate: PCI core support for Live Update David Matlack
2026-05-22 20:23 ` [PATCH v6 01/12] PCI: liveupdate: Set up FLB handler for the PCI core David Matlack
2026-05-22 20:43 ` sashiko-bot
2026-05-22 21:37 ` David Matlack
2026-05-23 11:17 ` Mike Rapoport
2026-05-25 16:50 ` Pratyush Yadav
2026-06-05 5:41 ` Pranjal Shrivastava
2026-06-08 20:51 ` David Matlack
2026-06-09 10:45 ` Pranjal Shrivastava
2026-06-12 5:15 ` Pasha Tatashin
2026-06-12 6:54 ` Mike Rapoport
2026-06-12 10:47 ` Pasha Tatashin
2026-06-15 22:19 ` David Matlack
2026-06-15 22:22 ` David Matlack [this message]
2026-05-22 20:24 ` [PATCH v6 02/12] PCI: liveupdate: Track outgoing preserved PCI devices David Matlack
2026-05-22 20:54 ` sashiko-bot
2026-05-22 21:28 ` David Matlack
2026-06-05 6:26 ` Pranjal Shrivastava
2026-06-05 6:11 ` Pranjal Shrivastava
2026-06-12 11:38 ` Pasha Tatashin
2026-05-22 20:24 ` [PATCH v6 03/12] PCI: liveupdate: Track incoming " David Matlack
2026-05-22 21:13 ` sashiko-bot
2026-05-22 21:34 ` David Matlack
2026-06-06 10:08 ` Pranjal Shrivastava
2026-06-08 20:57 ` David Matlack
2026-06-09 10:48 ` Pranjal Shrivastava
2026-06-14 13:38 ` Pasha Tatashin
2026-06-15 20:29 ` David Matlack
2026-05-22 20:24 ` [PATCH v6 04/12] PCI: liveupdate: Document driver binding responsibilities David Matlack
2026-05-25 15:35 ` Pratyush Yadav
2026-06-06 10:20 ` Pranjal Shrivastava
2026-06-14 13:41 ` Pasha Tatashin
2026-05-22 20:24 ` [PATCH v6 05/12] PCI: liveupdate: Keep bus numbers constant during Live Update David Matlack
2026-05-22 21:08 ` sashiko-bot
2026-05-22 21:31 ` David Matlack
2026-06-06 11:10 ` Pranjal Shrivastava
2026-06-14 14:01 ` Pasha Tatashin
2026-06-14 13:57 ` Pasha Tatashin
2026-06-15 20:20 ` David Matlack
2026-05-22 20:24 ` [PATCH v6 06/12] PCI: liveupdate: Auto-preserve upstream bridges across " David Matlack
2026-06-06 22:15 ` Pranjal Shrivastava
2026-06-08 21:34 ` David Matlack
2026-06-09 11:15 ` Pranjal Shrivastava
2026-05-22 20:24 ` [PATCH v6 07/12] PCI: Refactor matching logic for pci_dev_acs_ops David Matlack
2026-06-07 19:01 ` Pranjal Shrivastava
2026-06-08 21:49 ` David Matlack
2026-06-09 10:56 ` Pranjal Shrivastava
2026-05-22 20:24 ` [PATCH v6 08/12] PCI: liveupdate: Inherit ACS flags in incoming preserved devices David Matlack
2026-06-07 20:37 ` Pranjal Shrivastava
2026-06-08 10:49 ` Pranjal Shrivastava
2026-06-08 18:16 ` Jason Gunthorpe
2026-06-09 15:12 ` Pranjal Shrivastava
2026-06-09 15:34 ` Pranjal Shrivastava
2026-06-08 21:56 ` David Matlack
2026-06-09 17:20 ` Pranjal Shrivastava
2026-06-09 18:40 ` David Matlack
2026-06-09 19:25 ` Pranjal Shrivastava
2026-06-10 0:07 ` Jason Gunthorpe
2026-06-10 14:37 ` Pranjal Shrivastava
2026-05-22 20:24 ` [PATCH v6 09/12] PCI: liveupdate: Inherit ARI Forwarding Enable on preserved bridges David Matlack
2026-05-22 21:51 ` sashiko-bot
2026-06-08 11:33 ` Pranjal Shrivastava
2026-06-08 18:19 ` Jason Gunthorpe
2026-05-22 20:24 ` [PATCH v6 10/12] PCI: liveupdate: Freeze preservation status during shutdown David Matlack
2026-06-08 11:47 ` Pranjal Shrivastava
2026-05-22 20:24 ` [PATCH v6 11/12] PCI: liveupdate: Do not disable bus mastering on preserved devices during kexec David Matlack
2026-06-08 11:58 ` Pranjal Shrivastava
2026-05-22 20:24 ` [PATCH v6 12/12] Documentation: PCI: Add documentation for Live Update David Matlack
2026-06-08 12:01 ` Pranjal Shrivastava
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ajB7EA4tAKqj5XV0@google.com \
--to=dmatlack@google.com \
--cc=ajayachandra@nvidia.com \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=chrisl@kernel.org \
--cc=corbet@lwn.net \
--cc=graf@amazon.com \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=jrhilke@google.com \
--cc=kexec@lists.infradead.org \
--cc=leonro@nvidia.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=parav@nvidia.com \
--cc=pasha.tatashin@soleen.com \
--cc=praan@google.com \
--cc=pratyush@kernel.org \
--cc=rientjes@google.com \
--cc=rppt@kernel.org \
--cc=saeedm@nvidia.com \
--cc=skhan@linuxfoundation.org \
--cc=skhawaja@google.com \
--cc=vipinsh@google.com \
--cc=witu@nvidia.com \
--cc=yi.l.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.