On Tue, Sep 09, 2025 at 09:59:23PM -0400, Donald Dutile wrote: > > Alex might remember more, but I kind of suspect the current system of > > quirks is there because of devices that do internal loopback but have > > no ACS Capability. > > > and they are quirks b/c ... they violated the spec.... they are suppose > to have an ACS Cap if they can do internal loopback p2p dma. It is the reverse Linux assumed all devices without ACS capability CAN do internal loopback. This captures a huge number of real devices that it seems don't actually do internal loopback. When people complained, ie for DPDK/etc then quirks saying they don't do internal loopback were added. But this was never structured or sensible, I have systems here were LOM E1000 is quirked and a few generations later it is not quirked. I doubt it suddenly gained loopback. That said in doing so a few cases (AMD sound & GPU MFD comes to mind) were found where the MFD actually does internal loopback. So here we have to pick the least bad option: 1) Be pessimistic and assume internal loopback exists without ACS Cap and expand groups. Quirk devices determined to not have internal loopback. (as today, except due to bugs we don't expand the groups enough) 2) Be optimistic and assume no internal looback exists without ACS Cap and shrink groups. Quirk devices that are determiend to have internal loopback. (proposed here) v2 of this series did my best attempt at #1, and there were too many regressions because if you fix ACS to actually group the way it is supposed to the internal MFD loopback pessimism breaks alot of real systems. Don pointed to the spec and says there is reasonable language to assume that if the MFD has internal loopback it must have an ACS capability. > I'm assuming the quirks that the current system of quirks impacts the > groups and/or reachability, such that the quirks are accounted for, and that > history isn't lost (and we have another regression issue). In this version effectively the quirks become ignored for iommu grouping as we don't call the acs functions if there is no acs cap. Jason