Re: Enabling peer to peer device transactions for PCIe devices

From: Christian KÃnig
Date: Thu Nov 24 2016 - 04:45:45 EST


Am 24.11.2016 um 00:25 schrieb Jason Gunthorpe:
There is certainly nothing about the hardware that cares
about ZONE_DEVICE vs System memory.
Well that is clearly not so simple. When your ZONE_DEVICE pages describe a PCI BAR and another PCI device initiates a DMA to this address the DMA subsystem must be able to check if the interconnection really works.

E.g. it can happen that PCI device A exports it's BAR using ZONE_DEVICE. Not PCI device B (a SATA device) can directly read/write to it because it is on the same bus segment, but PCI device C (a network card for example) can't because it is on a different bus segment and the bridge can't handle P2P transactions.

We need to be able to handle such cases and fall back to bouncing buffers, but I don't see that in the DMA subsystem right now.

Regards,
Christian.