[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4e29ee5c-9045-e6ba-880b-fda4020c47c9@linux.intel.com>
Date: Wed, 13 Apr 2022 20:02:18 +0800
From: Lu Baolu <baolu.lu@...ux.intel.com>
To: "Tian, Kevin" <kevin.tian@...el.com>,
Joerg Roedel <joro@...tes.org>,
Jason Gunthorpe <jgg@...dia.com>,
Christoph Hellwig <hch@...radead.org>,
"Raj, Ashok" <ashok.raj@...el.com>, Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>,
Jean-Philippe Brucker <jean-philippe@...aro.com>
Cc: baolu.lu@...ux.intel.com, Eric Auger <eric.auger@...hat.com>,
"Liu, Yi L" <yi.l.liu@...el.com>,
"Pan, Jacob jun" <jacob.jun.pan@...el.com>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH RFC v3 02/12] iommu: Add a flag to indicate immutable
singleton group
On 2022/4/13 7:32, Tian, Kevin wrote:
>> From: Lu Baolu <baolu.lu@...ux.intel.com>
>> Sent: Tuesday, April 12, 2022 9:03 PM
>>
>> On 2022/4/12 15:37, Tian, Kevin wrote:
>>>> From: Lu Baolu <baolu.lu@...ux.intel.com>
>>>> Sent: Tuesday, April 12, 2022 1:09 PM
>>>> On 2022/4/12 11:15, Tian, Kevin wrote:
>>>>>> From: Lu Baolu <baolu.lu@...ux.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
Powered by blists - more mailing lists