Re: [PATCH v3 06/11] iommu: Compute iommu_groups properly for PCIe MFDs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux