RE: [PATCH v4 0/2] PCI/P2PDMA: Allow P2PDMA on Intel Xeon server CPUs

From: Popov, Pavel E

Date: Wed Nov 11 2026 - 19:02:07 EST


On Wed, Nov 11, 2026 at 09:09:27PM +0200, Leon Romanovsky wrote:
> The only sane approach is to do the cleanup first and then build the p2p
> changes on top of it.

Done in v5 [1]. It adds an empty <asm-generic/cpu_device_id.h>, so
<asm/cpu_device_id.h> can be included without #ifdef CONFIG_X86, and
the P2PDMA patch sits on top of it. The <asm/intel-family.h> include
is dropped, as <asm/cpu_device_id.h> already pulls it in on x86.

The follow-up series [2] removes the same #ifdef around the include
in the other users (ACPI, cpufreq, i915, amdgpu, tpm, ccp,
platform/x86).

> If you are ready, why hasn't it been done until now?

I missed your "general asm stubs" hint and read "properly exposed" as
moving the x86 headers under include/linux/, with the aim of dropping
CONFIG_X86 from the P2PDMA code entirely. As that is a much larger
change, I proposed doing it later.

[1] https://lore.kernel.org/r/20261111234439.4098-1-pavel.e.popov@xxxxxxxxx
[2] https://lore.kernel.org/r/20261111234821.4814-1-pavel.e.popov@xxxxxxxxx

Thanks,
Pavel

> -----Original Message-----
> From: Leon Romanovsky <leon@xxxxxxxxxx>
> Sent: Wednesday, November 11, 2026 12:10 PM
> To: Popov, Pavel E <pavel.e.popov@xxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Logan Gunthorpe
> <logang@xxxxxxxxxxxx>; Lukas Wunner <lukas@xxxxxxxxx>; Jim Chow
> <jim.chow@xxxxxxxxxxxx>; Radu Rugina <radu.rugina@xxxxxxxxxxxx>;
> Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>; Wei Liu
> <wei.liu@xxxxxxxxxx>; Michael Kelley <mhklinux@xxxxxxxxxxx>; Nathan
> Ciobanu <nathan.d.ciobanu@xxxxxxxxxxxxxxx>; bcm-kernel-feedback-
> list@xxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxxx; linux-
> hyperv@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v4 0/2] PCI/P2PDMA: Allow P2PDMA on Intel Xeon
> server CPUs
>
> On Wed, Nov 11, 2026 at 03:37:13PM +0000, Popov, Pavel E wrote:
> > On Wed, Nov 11, 2026 at 10:10:57AM +0200, Leon Romanovsky wrote:
> > > Peer-to-peer is a general concept, and the code should reflect that.
> > > It is reasonable to expect you to join the effort and help clean it up.
> >
> > I'm in. My proposal is to do it after this series, since this one
> > unblocks P2PDMA in guests and the cleanup is out of PCI scope: even
> > the minimal fix for p2pdma.c alone means changes under arch/x86, so it
> > would no longer be a P2PDMA patch but an x86 header series with its
> > own maintainers and review. That x86 header series is also the right
> > place to drop the same guard from six other files, and I'm ready to do
> > it:
>
> If you are ready, why hasn't it been done until now?
>
> The claims of urgency are hard to take seriously: `SKYLAKE_X` was added to
> `arch/x86/include/asm/intel-family.h` in 2016, and now, ten years later, you
> are asking us to "do it urgently." I strongly suspect that if I don't bring up P2P
> at LPC, we won't see this patch for another ten years.
>
> Even now, despite being asked to clean this up before the merge window, you
> still haven't done so. Trust is built by following through, not by making
> promises.
>
> >
> > drivers/acpi/mipi-disco-img.c
> > drivers/cpufreq/cpufreq_ondemand.h
> > drivers/gpu/drm/i915/intel_cpu_info.c
> > drivers/char/tpm/tpm.h
> > drivers/crypto/ccp/ccp-dev.c
> > include/linux/platform_data/x86/soc.h
> >
> > Bjorn, is v4 OK for v7.5 as is? The x86 header series will follow on
> > top.
>
> I disagree. You can't build this on top, as it would need to go through different
> trees and would likely cause merge conflicts. The cleanup series would have to
> touch the same lines in the PCI subsystem that you are changing now.
>
> The only sane approach is to do the cleanup first and then build the p2p
> changes on top of it.
>
> Thanks
>
> >
> > Thanks,
> > Pavel
> >
> > > -----Original Message-----
> > > From: Leon Romanovsky <leon@xxxxxxxxxx>
> > > Sent: Wednesday, November 11, 2026 1:11 AM
> > > To: Popov, Pavel E <pavel.e.popov@xxxxxxxxx>
> > > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Logan Gunthorpe
> > > <logang@xxxxxxxxxxxx>; Lukas Wunner <lukas@xxxxxxxxx>; Jim Chow
> > > <jim.chow@xxxxxxxxxxxx>; Radu Rugina
> <radu.rugina@xxxxxxxxxxxx>;
> > > Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>; Wei Liu
> > > <wei.liu@xxxxxxxxxx>; Michael Kelley <mhklinux@xxxxxxxxxxx>; Nathan
> > > Ciobanu <nathan.d.ciobanu@xxxxxxxxxxxxxxx>; bcm-kernel-feedback-
> > > list@xxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxxx; linux-
> > > hyperv@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; linux-
> > > kernel@xxxxxxxxxxxxxxx
> > > Subject: Re: [PATCH v4 0/2] PCI/P2PDMA: Allow P2PDMA on Intel Xeon
> > > server CPUs
> > >
> > > On Wed, Nov 11, 2026 at 03:48:07AM +0000, Popov, Pavel E wrote:
> > > > Hi Bjorn,
> > > >
> > > > Gentle ping on this series. Is this OK for v7.5?
> > >
> > > I would say no. An Intel employee was asked to clean up an
> > > Intel-created mess while upstreaming an Intel-specific patch.
> > >
> > > Peer-to-peer is a general concept, and the code should reflect that.
> > > It is reasonable to expect you to join the effort and help clean it up.
> > >
> > > Thanks
> > >
> > > >
> > > > Thanks,
> > > > Pavel
> > > >
> > > > > -----Original Message-----
> > > > > From: Popov, Pavel E <pavel.e.popov@xxxxxxxxx>
> > > > > Sent: Tuesday, October 20, 2026 10:38 AM
> > > > > To: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Logan Gunthorpe
> > > > > <logang@xxxxxxxxxxxx>
> > > > > Cc: Popov, Pavel E <pavel.e.popov@xxxxxxxxx>; Leon Romanovsky
> > > > > <leon@xxxxxxxxxx>; Lukas Wunner <lukas@xxxxxxxxx>; Jim Chow
> > > > > <jim.chow@xxxxxxxxxxxx>; Radu Rugina
> > > <radu.rugina@xxxxxxxxxxxx>;
> > > > > Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>; Wei Liu
> > > > > <wei.liu@xxxxxxxxxx>; Michael Kelley <mhklinux@xxxxxxxxxxx>;
> > > > > Nathan Ciobanu <nathan.d.ciobanu@xxxxxxxxxxxxxxx>;
> > > > > bcm-kernel-feedback- list@xxxxxxxxxxxx;
> > > > > virtualization@xxxxxxxxxxxxxxx; linux- hyperv@xxxxxxxxxxxxxxx;
> > > > > linux-pci@xxxxxxxxxxxxxxx; linux- kernel@xxxxxxxxxxxxxxx
> > > > > Subject: [PATCH v4 0/2] PCI/P2PDMA: Allow P2PDMA on Intel Xeon
> > > > > server CPUs
> > > > >
> > > > > VMware and Hyper-V expose passthrough devices to guest VMs
> > > > > without an explicit host bridge device. Consequently,
> > > > > host_bridge_whitelist() cannot automatically identify the
> > > > > underlying host bridge structure, causing Peer-to- Peer DMA
> > > > > (P2PDMA) requests to be rejected unless the device IDs are
> > > > > explicitly listed in pci_p2pdma_whitelist[]. To enable P2PDMA on
> > > > > Intel hosts, this series extends cpu_supports_p2pdma(), which so
> > > > > far covers AMD Zen and
> > > newer, with an explicit list of Intel Xeon server generations.
> > > > >
> > > > > Patch 1 moves the CONFIG_X86 #ifdef out of cpu_supports_p2pdma().
> > > > > Patch 2 is the v3 patch rebased on it, with Logan's Reviewed-by
> > > > > carried over; the Xeon list and the check are unchanged.
> > > > >
> > > > > Changes in v4:
> > > > > - Add 1/2, moving the CONFIG_X86 #ifdef out of
> cpu_supports_p2pdma()
> > > > > (Logan Gunthorpe, Leon Romanovsky)
> > > > > - Keep the #ifdef around the asm/ includes, as these headers exist
> > > > > only on x86 (Bjorn Helgaas)
> > > > >
> > > > > Changes in v3:
> > > > > - Drop the hypervisor check and move the Xeon list into
> > > > > cpu_supports_p2pdma(), next to the AMD check, as suggested by
> Logan
> > > > > Gunthorpe and Leon Romanovsky [1]
> > > > > - Fold the VMware and Hyper-V patches into one, as the check no
> longer
> > > > > depends on the hypervisor
> > > > >
> > > > > Changes in v2:
> > > > > - Replace the Skylake-and-newer threshold with an explicit list of Intel
> > > > > Xeon server generations, from Skylake-SP to Diamond Rapids (Logan
> > > > > Gunthorpe)
> > > > > - Move the CONFIG_X86 #ifdef out of hypervisor_supports_p2pdma()
> > > > > (Logan Gunthorpe)
> > > > > - Rebased on current mainline
> > > > >
> > > > > [1] https://lore.kernel.org/r/20261016153147.GC219304@unreal
> > > > >
> > > > > v3: https://lore.kernel.org/r/20261020151305.65218-1-
> > > > > pavel.e.popov@xxxxxxxxx
> > > > > v2: https://lore.kernel.org/r/20261016223402.19991-1-
> > > > > pavel.e.popov@xxxxxxxxx
> > > > > v1: https://lore.kernel.org/r/20261009154034.82321-1-
> > > > > pavel.e.popov@xxxxxxxxx
> > > > >
> > > > > Pavel Popov (2):
> > > > > PCI/P2PDMA: Move CONFIG_X86 #ifdef out of
> cpu_supports_p2pdma()
> > > > > PCI/P2PDMA: Allow P2PDMA on Intel Xeon server CPUs
> > > > >
> > > > > drivers/pci/p2pdma.c | 33 +++++++++++++++++++++++++++++++--
> > > > > 1 file changed, 31 insertions(+), 2 deletions(-)
> > > > >
> > > > >
> > > > > base-commit: c03c1a14507dfaf8b856c2608f9ac216021fc222
> > > > > --
> > > > > 2.53.0
> > > >
> >