Re: [PATCH v9 02/18] PCI/P2PDMA: Derive routing from directional ACS controls

From: Bjorn Helgaas

Date: Fri Oct 23 2026 - 16:16:30 EST


On Fri, Oct 23, 2026 at 04:00:36PM -0300, Jason Gunthorpe wrote:
> On Fri, Oct 23, 2026 at 01:27:15PM -0500, Bjorn Helgaas wrote:
>
> > > Yes, the ACS combination is selected to avoid ordering issues
> >
> > Does a user have any way to know whether the configuration is safe?
>
> No, unfortunately in PCIe so much is really difficult when it comes to
> deployment :(
>
> > I'm wondering whether users might use "pci=config_acs=" to configure
> > ACS so things appear to work as they prefer but may not provide the
> > ordering guarantees drivers depend on.
>
> I imagine that could happen, but on most practical systems the root
> complex will blow up if you do asymmetric routing so there is an early
> indication.
>
> I know this because I've help debug such configurations at
> customers. Some servers helpfully MCE if you do this. Lovely.

I'm still confused about this because earlier in this thread, I
thought Leon said you do asymmetric routing:

Bjorn> And I guess asymmetric fabrics must mean fabrics where
Bjorn> Request Redirect and Completion Redirect are not set the same
Bjorn> way?

Leon> Yes, in some of our systems, deviceA to deviceB is going
Leon> through different route than deviceB to deviceA.

> > If that's a possibility, do we have any notes in dmesg that we are
> > depending on fabric behavior that the OS can't discover and verify?
>
> Maybe, it could be interesting if the P2P logic found asymetric paths
> it refuses to permit it.

It seems like P2PDMA *could* check for asymmetric paths and at least
warn about it. If it's practical to do so, it would make me feel a
lot better about this.