The iommu_group can guarantee the isolation among different physicalThis seems like a misunderstanding of groups. Groups are not tied to
devices (represented by RIDs). But when it comes to sub-devices (ex. mdev or
vDPA devices represented by RID + SSID), we have to rely on the
device driver for isolation. The devices which are able to generate sub-
devices should either use their own on-device mechanisms or use the
platform features like Intel Scalable IOV to isolate the sub-devices.
any PCI meaning. Groups are the smallest unit of isolation, no matter
what is providing that isolation.
If mdevs are isolated from each other by clever software, even though
they're on the same PCI device they are in different groups from each
other*by definition*. They are also in a different group from their
parent device (however the mdevs only exist when mdev driver is
active, which implies that the parent device's group is owned by the
kernel).
Under above conditions, different sub-device from a same RID deviceThat doesn't necessarily follow. mdevs which can be successfully
could be able to use different IOASID. This seems to means that we can't
support mixed mode where, for example, two RIDs share an iommu_group and
one (or both) of them have sub-devices.
isolated by their mdev driver are in a different group from their
parent device, and therefore need not be affected by whether the
parent device shares a group with some other physical device. They
*might* be, but that's up to the mdev driver to determine based on
what it can safely isolate.