From: "Popov, Pavel E" <pavel.e.popov@intel.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Jim Chow <jim.chow@broadcom.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Logan Gunthorpe <logang@deltatee.com>,
Radu Rugina <radu.rugina@broadcom.com>,
Alexey Makhalov <alexey.makhalov@broadcom.com>,
Wei Liu <wei.liu@kernel.org>,
Michael Kelley <mhklinux@outlook.com>,
Lukas Wunner <lukas@wunner.de>,
Nathan Ciobanu <nathan.d.ciobanu@linux.intel.com>,
"bcm-kernel-feedback-list@broadcom.com"
<bcm-kernel-feedback-list@broadcom.com>,
"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH 0/2] PCI/P2PDMA: Allow P2PDMA in VMware and Hyper-V guests on Intel hosts
Date: Mon, 12 Oct 2026 16:45:08 +0000 [thread overview]
Message-ID: <DS7PR11MB6064DA61339B9AB0F52EBED4B29F2@DS7PR11MB6064.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20261012162410.GH219304@unreal>
> I'm not following your reasoning here. In the cover letter, you say that
> VMware reviewed your work. If VMware wants to provide P2P support to its
> users, it can add the necessary support itself. As for Microsoft, there's
> no need to worry; it can handle the ACPI changes just fine.
The cover letter sentence on this, "their adoption timeline in
hypervisors remains uncertain", was written with VMware's input; Jim,
Radu and Alexey are on CC and can speak for ESXi. But whatever VMware
and Microsoft do in future releases, guests on already shipped ESXi and
Hyper-V versions are not going to get HMAT, and those stay in production
for years. On them, passthrough GPUs, NICs and NVMe drives have no P2PDMA
at all without a kernel-side fallback.
> Of course not. P2P operation depends on the hypervisor topology, which
> the proposed code does not account for.
The guest topology is what the code already evaluates, unchanged: the
common upstream bridge walk and the ACS checks run first, and the new
check is reached only after they fail, right where cpu_supports_p2pdma()
already bypasses the host bridge lookup for AMD Zen. What the guest sees
is a flat topology:
VMware, four GPUs:
-+-[0000:00]-+-00.0 Intel 440BX/ZX/DX Host bridge
| +-07.x PIIX4 ISA/IDE/ACPI, VMCI, SVGA
+-[0000:02]-+-00.0 VMware PVSCSI
| +-01.0 VMware VMXNET3
| ...
\-[0000:03]-+-00.0 Intel GPU
+-01.0 Intel GPU
+-02.0 Intel GPU
\-03.0 Intel GPU
Hyper-V, four GPUs:
-[2fc0:00]---00.0 Intel GPU
-[542b:00]---00.0 Intel GPU
-[5c71:00]---00.0 Intel GPU
-[9624:00]---00.0 Intel GPU
The passthrough devices sit directly on root buses with no host bridge
device and no root ports; on Hyper-V each is alone in its own PCI
domain. There is no upstream bridge to share, no ACS to evaluate, and
the host bridge lookup lands on the endpoint itself. The topology
carries no routing information, so the check falls back to the CPU model
and hypervisor type. HMAT would provide what the topology cannot; when
your HMAT-based detection lands it should be consulted first, so this
check is never reached where HMAT exists.
> -----Original Message-----
> From: Leon Romanovsky <leon@kernel.org>
> Sent: Monday, October 12, 2026 9:24 AM
> To: Popov, Pavel E <pavel.e.popov@intel.com>
> Cc: Bjorn Helgaas <helgaas@kernel.org>; Jim Chow <jim.chow@broadcom.com>;
> Bjorn Helgaas <bhelgaas@google.com>; Logan Gunthorpe
> <logang@deltatee.com>; Radu Rugina <radu.rugina@broadcom.com>; Alexey
> Makhalov <alexey.makhalov@broadcom.com>; Wei Liu <wei.liu@kernel.org>;
> Michael Kelley <mhklinux@outlook.com>; Lukas Wunner <lukas@wunner.de>;
> Nathan Ciobanu <nathan.d.ciobanu@linux.intel.com>; bcm-kernel-feedback-
> list@broadcom.com; virtualization@lists.linux.dev; linux-hyperv@vger.kernel.org;
> linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 0/2] PCI/P2PDMA: Allow P2PDMA in VMware and Hyper-V
> guests on Intel hosts
>
> On Mon, Oct 12, 2026 at 02:26:43PM +0000, Popov, Pavel E wrote:
> > To be clear about what is at stake: this series is what enables P2PDMA
> > in VMware and Hyper-V guests on Intel hosts. The assumption that the
> > hypervisor can simply be fixed to emit HMAT is Linux-centric. It holds
> > for KVM/QEMU, which is open source and where anyone can add HMAT
> support.
> > ESXi and Hyper-V are proprietary, so only VMware and Microsoft can add
> > it, and until they do, this series is the only path for guests on
> > those hypervisors.
>
> I'm not following your reasoning here. In the cover letter, you say that VMware
> reviewed your work. If VMware wants to provide P2P support to its users, it can
> add the necessary support itself. As for Microsoft, there's no need to worry; it can
> handle the ACPI changes just fine.
>
> >
> > > This does not change the fact that the patch causes unpredictable
> > > behavior for P2P devices in the guest. Sometimes it works; other
> > > times, devices that previously worked may be classified as
> > > P2P-capable and will stop.
> >
> > Nothing "previously worked" here. Before this patch, P2PDMA was
> > refused for every passthrough device pair in VMware and Hyper-V guests
> > on Intel hosts, except Intel QAT/DSA/IAA, whose own Device IDs happen
> > to be in the allowlist. Those keep working unchanged, so there is no
> > working configuration that could regress. And the check is
> > deterministic: it depends on the CPU model and the hypervisor type,
> > nothing else. The same guest on the same host gets the same answer every
> time.
>
> Of course not. P2P operation depends on the hypervisor topology, which the
> proposed code does not account for.
>
> >
> > > Help Lukas and Mahesh succeed in their work.
> >
> > I'd like to, but the blocker for guests is on the hypervisor side. A
> > guest only benefits from HMAT once ESXi or Hyper-V emits it, and that
> > is VMware's and Microsoft's code, outside the control of Intel or the
> > kernel community. The kernel cannot make them ship it; what it can do
> > is provide this fallback. When your HMAT-based detection lands, it
> > should be consulted first and this check only when no HMAT is present,
> > so on any hypervisor that emits HMAT your code is what runs and this
> > one is never reached.
>
> The kernel community has no obligation to accommodate users of proprietary
> products who are unwilling to invest in a proper solution.
>
> Please keep these hacks out of tree.
>
> Thanks
next prev parent reply other threads:[~2026-10-12 16:45 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 15:40 Pavel Popov
2026-10-09 15:40 ` [PATCH 1/2] PCI/P2PDMA: Allow P2PDMA in VMware " Pavel Popov
2026-10-09 16:38 ` Logan Gunthorpe
2026-10-09 16:49 ` Popov, Pavel E
2026-10-09 15:40 ` [PATCH 2/2] PCI/P2PDMA: Allow P2PDMA in Hyper-V " Pavel Popov
2026-10-09 16:58 ` [PATCH 0/2] PCI/P2PDMA: Allow P2PDMA in VMware and " Bjorn Helgaas
2026-10-09 18:08 ` Leon Romanovsky
2026-10-09 18:21 ` Popov, Pavel E
2026-10-09 18:49 ` Leon Romanovsky
2026-10-09 19:13 ` Popov, Pavel E
2026-10-11 5:47 ` Leon Romanovsky
2026-10-12 14:26 ` Popov, Pavel E
2026-10-12 16:24 ` Leon Romanovsky
2026-10-12 16:45 ` Popov, Pavel E [this message]
2026-10-12 18:21 ` Leon Romanovsky
2026-10-12 20:01 ` Popov, Pavel E
2026-10-09 19:12 ` Bjorn Helgaas
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=DS7PR11MB6064DA61339B9AB0F52EBED4B29F2@DS7PR11MB6064.namprd11.prod.outlook.com \
--to=pavel.e.popov@intel.com \
--cc=alexey.makhalov@broadcom.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bhelgaas@google.com \
--cc=helgaas@kernel.org \
--cc=jim.chow@broadcom.com \
--cc=leon@kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=lukas@wunner.de \
--cc=mhklinux@outlook.com \
--cc=nathan.d.ciobanu@linux.intel.com \
--cc=radu.rugina@broadcom.com \
--cc=virtualization@lists.linux.dev \
--cc=wei.liu@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®