On Wed, Mar 14, 2018 at 12:03 PM, Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote: > > > On 14/03/18 12:51 PM, Bjorn Helgaas wrote: >> You are focused on PCIe systems, and in those systems, most topologies >> do have an upstream switch, which means two upstream bridges. I'm >> trying to remove that assumption because I don't think there's a >> requirement for it in the spec. Enforcing this assumption complicates >> the code and makes it harder to understand because the reader says >> "huh, I know peer-to-peer DMA should work inside any PCI hierarchy*, >> so why do we need these two bridges?" > > Yes, as I've said, we focused on being behind a single PCIe Switch > because it's easier and vaguely safer (we *know* switches will work but > other types of topology we have to assume will work based on the spec). > Also, I have my doubts that anyone will ever have a use for this with > non-PCIe devices. P2P over PCI/PCI-X is quite common in devices like raid controllers. It would be useful if those configurations were not left behind so that Linux could feasibly deploy offload code to a controller in the PCI domain.