Re: [PATCH v9 01/18] PCI/P2PDMA: Document the TLP attribute assumptions

From: Leon Romanovsky

Date: Mon Oct 12 2026 - 07:11:07 EST


On Wed, Oct 07, 2026 at 03:12:57PM -0500, Bjorn Helgaas wrote:
> On Thu, Oct 01, 2026 at 02:55:09PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@xxxxxxxxxx>
> >
> > P2PDMA selects a mapping without receiving the Request's ordering or
> > Address Type attributes. Its ACS handles only strictly ordered Requests
> > carrying an Untranslated address.
> >
> > Document that the result is not defined for Relaxed Ordering or
> > ATS-translated Requests because those TLP attributes can select different
> > routes through the fabric.
> >
> > Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
> > Tested-by: Tushar Dave <tdave@xxxxxxxxxx>
> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> > ---
> > Documentation/driver-api/pci/p2pdma.rst | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/Documentation/driver-api/pci/p2pdma.rst b/Documentation/driver-api/pci/p2pdma.rst
> > index 63cff9e4d2c9..80f8fec9b0e9 100644
> > --- a/Documentation/driver-api/pci/p2pdma.rst
> > +++ b/Documentation/driver-api/pci/p2pdma.rst
> > @@ -15,6 +15,13 @@ then based on the ACS settings the transaction can route entirely within
> > the PCIe hierarchy and never reach the root port. The kernel will evaluate
> > the PCIe topology and always permit P2P in these well-defined cases.
> >
> > +This evaluation assumes clients issue strictly ordered Requests carrying an
> > +Untranslated address. Its result is not defined when clients use Relaxed
> > +Ordering or issue ATS-translated Requests because those TLP attributes can
> > +select different routes through the fabric. Unless ACS Translation Blocking
> > +is enabled, a Port with ACS Direct Translated P2P enabled routes a
> > +Translated Request directly to the peer regardless of the redirect controls.
>
> This whole paragraph is removed later in the series, so kudos for
> documenting the current state before it changes :)

This may be a leftover from the prerequisite fixes you merged. I'll keep it
in the series for historical context. :)

>
> Unrelated to anything in this series, but this doc mentions
> "p2p_provider", which doesn't exist. Should it be "p2pdma_provider"?

Yes.