Hi Zhiping, On 8/1/2026 5:15 AM, Zhiping Zhang wrote: > Peer-to-peer DMA between a mlx5 NIC and a foreign PCIe endpoint > (typically a GPU or a vfio-pci passthrough device) traverses the host > PCIe fabric. The endpoint exporting the dma-buf knows which PCIe TLP > Processing Hint (TPH) Steering Tag yields the best placement for the > traffic it will sink: per-endpoint hint selection lets the root complex > or switch direct DMA to a specific cache slice / NUMA node, cutting > cross-socket snoop traffic and DRAM pressure under sustained p2p > workloads. > > Until now the mlx5 importer had no way to learn the exporter's chosen > ST tag, so dma-buf MRs were registered without TPH and ran with the > default (no-hint) routing. With dma_buf_get_pci_tph() in place this > patch wires up mlx5_ib to query that metadata at MR registration time > for p2p access and use it to program requester-side TPH on the outbound > mkey. If the exporter has no metadata, fall back to the existing > no-TPH path so behavior for non-TPH-aware exporters is unchanged.
While working on v21 of the VFIO PCIe TPH series, we got review feedback that importers must add pci_p2pdma_distance() validation before retrieving ST values from a dma-buf. Your mlx5 patch follows the same importer pattern – it consumes dma-buf TPH metadata. I think this patch should also include the same distance check. Thanks, Chengwen
