On 08/05/18 02:13 PM, Alex Williamson wrote: > Well, I'm a bit confused, this patch series is specifically disabling > ACS on switches, but per the spec downstream switch ports implementing > ACS MUST implement direct translated P2P. So it seems the only > potential gap here is the endpoint, which must support ATS or else > there's nothing for direct translated P2P to do. The switch port plays > no part in the actual translation of the request, ATS on the endpoint > has already cached the translation and is now attempting to use it. > For the switch port, this only becomes a routing decision, the request > is already translated, therefore ACS RR and EC can be ignored to > perform "normal" (direct) routing, as if ACS were not present. It would > be a shame to go to all the trouble of creating this no-ACS mode to find > out the target hardware supports ATS and should have simply used it, or > we should have disabled the IOMMU altogether, which leaves ACS disabled. Ah, ok, I didn't think it was the endpoint that had to implement ATS. But in that case, for our application, we need NVMe cards and RDMA NICs to all have ATS support and I expect that is just as unlikely. At least none of the endpoints on my system support it. Maybe only certain GPUs have this support. Logan