[PATCH v2 0/2] PCI/P2PDMA: Allow P2PDMA in VMware and Hyper-V guests on Intel hosts
From: Pavel Popov
Date: Fri Oct 16 2026 - 18:34:37 EST
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 support in virtualized environments on Intel hosts, this series
introduces hypervisor_supports_p2pdma().
Although alternative P2PDMA mechanisms are in development [1], their
adoption timeline in hypervisors remains uncertain. This solution
addresses the immediate need to support both new and existing
hypervisor deployments.
The patches are organized by hypervisor for clarity. While the primary
focus is VMware, a corresponding Hyper-V patch addresses the same
pattern and is included for maintainer consideration.
[1] https://lore.kernel.org/r/20260812-hmat-p2p-v1-0-75ac41380585@xxxxxxxxxx
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
v1: https://lore.kernel.org/r/20261009154034.82321-1-pavel.e.popov@xxxxxxxxx
Pavel Popov (2):
PCI/P2PDMA: Allow P2PDMA in VMware guests on Intel hosts
PCI/P2PDMA: Allow P2PDMA in Hyper-V guests on Intel hosts
drivers/pci/p2pdma.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
base-commit: 70dd4ee72eb2d5793c62e71c14e3aba78e5a4e56
--
2.53.0