From: Vipin Sharma <vipinsh@google.com>
To: David Matlack <dmatlack@google.com>
Cc: iommu@lists.linux.dev, 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>, Joerg Roedel <joro@8bytes.org>,
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>,
Pasha Tatashin <pasha.tatashin@soleen.com>,
Pranjal Shrivastava <praan@google.com>,
Pratyush Yadav <pratyush@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Samiullah Khawaja <skhawaja@google.com>,
Shuah Khan <skhan@linuxfoundation.org>,
Will Deacon <will@kernel.org>, William Tu <witu@nvidia.com>,
Yi Liu <yi.l.liu@intel.com>
Subject: Re: [PATCH v4 02/11] PCI: liveupdate: Track outgoing preserved PCI devices
Date: Tue, 28 Apr 2026 13:20:25 -0700 [thread overview]
Message-ID: <20260428201231.GA3885809.vipinsh@google.com> (raw)
In-Reply-To: <20260423212316.3431746-3-dmatlack@google.com>
On Thu, Apr 23, 2026 at 09:23:06PM +0000, David Matlack wrote:
> +int pci_liveupdate_preserve(struct pci_dev *dev)
> +{
> + struct pci_ser *ser;
> + int i, ret;
> +
> + guard(mutex)(&pci_flb_outgoing_lock);
> +
> + ret = liveupdate_flb_get_outgoing(&pci_liveupdate_flb, (void **)&ser);
> + if (ret)
> + return ret;
> +
> + if (!ser)
> + return -ENOENT;
> +
> + if (dev->is_virtfn)
> + return -EINVAL;
> +
> + if (dev->liveupdate_outgoing)
> + return -EBUSY;
> +
> + if (ser->nr_devices == ser->max_nr_devices)
> + return -ENOSPC;
> +
> + for (i = 0; i < ser->max_nr_devices; i++) {
> + /*
> + * Start searching at index ser->nr_devices. This should result
> + * in a constant time search under expected conditions (devices
> + * are not getting unpreserved).
> + */
> + int index = (ser->nr_devices + i) % ser->max_nr_devices;
> + struct pci_dev_ser *dev_ser = &ser->devices[index];
> +
> + if (dev_ser->refcount)
> + continue;
> +
> + pci_info(dev, "Device will be preserved across next Live Update\n");
> + ser->nr_devices++;
> +
> + dev_ser->domain = pci_domain_nr(dev->bus);
> + dev_ser->bdf = pci_dev_id(dev);
> + dev_ser->refcount = 1;
> +
> + dev->liveupdate_outgoing = dev_ser;
> + return 0;
> + }
> +
> + return -ENOSPC;
Since it is executing under a mutex, and we already failed
'if (ser->nr_devices == ser->max_nr_devices) check above, will we ever reach
here and return -ENOSPC?
> diff --git a/include/linux/kho/abi/pci.h b/include/linux/kho/abi/pci.h
> index 5c0e92588c00..5b4c8d9e462c 100644
> --- a/include/linux/kho/abi/pci.h
> +++ b/include/linux/kho/abi/pci.h
> @@ -23,19 +23,20 @@
> * incrementing the version number in the PCI_LUO_FLB_COMPATIBLE string.
> */
>
> -#define PCI_LUO_FLB_COMPATIBLE "pci-v1"
> +#define PCI_LUO_FLB_COMPATIBLE "pci-v2"
Just curious, why did we change the version here? It's not like just
previous patch is working enough to perform a live update. As the config
is experimental, can't we just keep it PCI-v1 for the whole series?
>
next prev parent reply other threads:[~2026-04-28 20:20 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-23 21:23 [PATCH v4 00/11] PCI: liveupdate: PCI core support for Live Update David Matlack
2026-04-23 21:23 ` [PATCH v4 01/11] PCI: liveupdate: Set up FLB handler for the PCI core David Matlack
2026-04-24 12:33 ` Pratyush Yadav
2026-04-24 13:29 ` Pasha Tatashin
2026-04-27 23:59 ` David Matlack
2026-04-28 17:50 ` Pasha Tatashin
2026-04-28 23:47 ` David Matlack
2026-04-30 21:06 ` Bjorn Helgaas
2026-05-01 16:57 ` David Matlack
2026-04-27 21:05 ` Bjorn Helgaas
2026-04-27 21:31 ` David Matlack
2026-04-28 19:45 ` Vipin Sharma
2026-04-28 23:51 ` David Matlack
2026-04-30 18:48 ` Vipin Sharma
2026-04-30 20:44 ` David Matlack
2026-04-23 21:23 ` [PATCH v4 02/11] PCI: liveupdate: Track outgoing preserved PCI devices David Matlack
2026-04-27 15:57 ` Jacob Pan
2026-04-27 18:56 ` David Matlack
2026-04-27 21:06 ` Bjorn Helgaas
2026-04-28 17:24 ` Samiullah Khawaja
2026-04-28 17:35 ` Samiullah Khawaja
2026-04-30 21:16 ` David Matlack
2026-04-30 21:15 ` David Matlack
2026-05-01 18:17 ` Samiullah Khawaja
2026-05-01 18:25 ` David Matlack
2026-04-28 20:20 ` Vipin Sharma [this message]
2026-04-28 21:12 ` David Matlack
2026-04-30 18:25 ` Vipin Sharma
2026-04-30 20:36 ` David Matlack
2026-04-30 20:42 ` Vipin Sharma
2026-04-30 21:22 ` David Matlack
2026-04-23 21:23 ` [PATCH v4 03/11] PCI: liveupdate: Track incoming " David Matlack
2026-04-27 21:06 ` Bjorn Helgaas
2026-04-23 21:23 ` [PATCH v4 04/11] PCI: liveupdate: Document driver binding responsibilities David Matlack
2026-04-23 21:23 ` [PATCH v4 05/11] PCI: liveupdate: Inherit bus numbers during Live Update David Matlack
2026-04-27 18:47 ` Jacob Pan
2026-04-27 20:40 ` David Matlack
2026-04-27 21:16 ` David Matlack
2026-04-29 22:28 ` Jacob Pan
2026-04-29 22:56 ` David Matlack
2026-04-27 21:07 ` Bjorn Helgaas
2026-04-23 21:23 ` [PATCH v4 06/11] PCI: liveupdate: Auto-preserve upstream bridges across " David Matlack
2026-04-23 21:23 ` [PATCH v4 07/11] PCI: liveupdate: Inherit ACS flags in incoming preserved devices David Matlack
2026-05-04 17:23 ` David Matlack
2026-04-23 21:23 ` [PATCH v4 08/11] PCI: liveupdate: Require preserved devices are in immutable singleton IOMMU groups David Matlack
2026-04-23 22:10 ` David Matlack
2026-04-23 22:52 ` Jason Gunthorpe
2026-04-23 23:09 ` David Matlack
2026-04-23 23:27 ` Samiullah Khawaja
2026-04-30 20:46 ` David Matlack
2026-04-27 20:56 ` Jacob Pan
2026-04-30 20:49 ` David Matlack
2026-04-23 21:23 ` [PATCH v4 09/11] PCI: liveupdate: Inherit ARI Forwarding Enable on preserved bridges David Matlack
2026-04-23 21:23 ` [PATCH v4 10/11] PCI: liveupdate: Do not disable bus mastering on preserved devices during kexec David Matlack
2026-04-27 21:08 ` Bjorn Helgaas
2026-04-23 21:23 ` [PATCH v4 11/11] Documentation: PCI: Add documentation for Live Update David Matlack
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=20260428201231.GA3885809.vipinsh@google.com \
--to=vipinsh@google.com \
--cc=ajayachandra@nvidia.com \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=chrisl@kernel.org \
--cc=corbet@lwn.net \
--cc=dmatlack@google.com \
--cc=graf@amazon.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--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=robin.murphy@arm.com \
--cc=rppt@kernel.org \
--cc=saeedm@nvidia.com \
--cc=skhan@linuxfoundation.org \
--cc=skhawaja@google.com \
--cc=will@kernel.org \
--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.