Bug#1015871: Enabling PCI_P2PDMA for distro kernels?
- To: Lukas Wunner <lukas@wunner.de>
- Cc: Logan Gunthorpe <logang@deltatee.com>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>, Bjorn Helgaas <bhelgaas@google.com>, Simon Richter <sjr@debian.org>, 1015871@bugs.debian.org, linux-pci@vger.kernel.org, Alex Deucher <alexander.deucher@amd.com>, Krzysztof Wilczy??ski <kw@linux.com>, Emanuele Rocca <ema@debian.org>
- Subject: Bug#1015871: Enabling PCI_P2PDMA for distro kernels?
- From: Bjorn Helgaas <helgaas@kernel.org>
- Date: Wed, 25 Oct 2023 12:35:34 -0500
- Message-id: <[🔎] 20231025173534.GA1755254@bhelgaas>
- Reply-to: Bjorn Helgaas <helgaas@kernel.org>, 1015871@bugs.debian.org
- In-reply-to: <[🔎] 20231025171126.GA9661@wunner.de>
- References: <165852041410.25326.17973698626515845951.reportbug@lime.hogyros.de>
On Wed, Oct 25, 2023 at 07:11:26PM +0200, Lukas Wunner wrote:
> On Wed, Oct 25, 2023 at 10:30:07AM -0600, Logan Gunthorpe wrote:
> > In addition to the above, P2PDMA transfers are only allowed by the
> > kernel for traffic that flows through certain host bridges that are
> > known to work. For AMD, all modern CPUs are on this list, but for Intel,
> > the list is very patchy.
>
> This has recently been brought up internally at Intel and nobody could
> understand why there's a whitelist in the first place. A long-time PCI
> architect told me that Intel silicon validation has been testing P2PDMA
> at least since the Lindenhurst days, i.e. since 2005.
>
> What's the reason for the whitelist? Was there Intel hardware which
> didn't support it or turned out to be broken?
>
> I imagine (but am not certain) that the feature might only be enabled
> for server SKUs, is that the reason?
No, the reason is that the PCIe spec doesn't require routing of
peer-to-peer transactions between Root Ports:
https://git.kernel.org/linus/0f97da831026
I think there was a little discussion about adding a firmware
interface to advertise this capability, but I guess nobody cared
enough to advance it.
Bjorn
Reply to: