On Tue, Apr 05, 2022 at 02:12:42PM +0800, Lu Baolu wrote:
On 2022/4/5 1:24, Jason Gunthorpe wrote:
On Mon, Apr 04, 2022 at 01:43:49PM +0800, Lu Baolu wrote:
On 2022/3/30 19:58, Jason Gunthorpe wrote:
Add a flag to the group that positively indicates the group can neverTesting the group size is inherently the wrong test to make.What is your suggestion then?
have more than one member, even after hot plug. eg because it is
impossible due to ACS, or lack of bridges, and so on.
The check method seems to be bus specific. For platform devices, perhaps
this kind of information should be retrieved from firmware interfaces
like APCI or DT.
From this point of view, would it be simpler and more reasonable for the
device driver to do such check? After all, it is the device driver that
decides whether to provide SVA services to the application via uacce.
The check has to do with the interconnect, not the device - I don't
see how a device driver would know any better.
I'm worried about how to support this group flag for devices that are
not connected to the system through PCI buses. If IOMMU can support
sva_bind() only when this flag is set, the SVA on many devices cannot
be supported. Or this flag is always set for non PCI devices by
default?
IHMO it is not so different from how we determine if ACS like
functionality is supported on non-PCI. It is really just a more narrow
application of the existing ACS idea.
For instance it may be that if the iommu_group came from DT we can
assume it is static and then singleton can know ACS is reliable.