Messages in this thread | | | Date | Wed, 13 Apr 2022 20:02:18 +0800 | Subject | Re: [PATCH RFC v3 02/12] iommu: Add a flag to indicate immutable singleton group | From | Lu Baolu <> |
| |
On 2022/4/13 7:32, Tian, Kevin wrote: >> From: Lu Baolu <baolu.lu@linux.intel.com> >> Sent: Tuesday, April 12, 2022 9:03 PM >> >> On 2022/4/12 15:37, Tian, Kevin wrote: >>>> From: Lu Baolu <baolu.lu@linux.intel.com> >>>> Sent: Tuesday, April 12, 2022 1:09 PM >>>> On 2022/4/12 11:15, Tian, Kevin wrote: >>>>>> From: Lu Baolu <baolu.lu@linux.intel.com> >>>>>> Sent: Sunday, April 10, 2022 6:25 PM >>>>> >>>>>> >>>>>> This adds a flag in the iommu_group struct to indicate an immutable >>>>>> singleton group, and uses standard PCI bus topology, isolation features, >>>>>> and DMA alias quirks to set the flag. If the device came from DT, >> assume >>>>>> it is static and then the singleton attribute can know from the device >>>>>> count in the group. >>>>> >>>>> where does the assumption come from? >>>> >>>> Hotplug is the only factor that can dynamically affect the >>>> characteristics of IOMMU group singleton as far as I can see. If a >>>> device node was created from the DT, it could be treated as static, >>>> hence we can judge the singleton in iommu probe phase during boot. >>> >>> I didn't get this. Let's look at your code in iommu_group_add_device(): >>> >>> + else if (is_of_node(dev_fwnode(dev))) >>> + group->immutable_singleton = >>> + (iommu_group_device_count(group) == 1); >>> >>> Even if there is a multi-devices group above logic will set the flag when >>> the first device in the group is added since at that time there is only >>> one device in the group. We need other concrete information to tell >>> it similar to how you walk PCI hierarchy to find out the fact... >> >> This is a small trick to make things simpler. Once more devices are >> added to the group, the flag will be flipped. All iommu_group's should >> be settled down before any drivers start to consume this flag. >> > > As an immutable flag it cannot be flipped. What about SVA has been > enabled on the 1st device before the 2nd one is added to the group?
The flipping happens during iommu probe phase before any device driver binding. Anyway, I have to agree that it doesn't look clever. :-) Let me try to figure out another way.
Best regards, baolu
| |