Re: [PATCH v9 01/18] PCI/P2PDMA: Document the TLP attribute assumptions
From: Bjorn Helgaas
Date: Wed Oct 07 2026 - 16:13:34 EST
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 :)
Unrelated to anything in this series, but this doc mentions
"p2p_provider", which doesn't exist. Should it be "p2pdma_provider"?