Messages in this thread | | | Date | Fri, 1 Jul 2022 11:13:07 +0800 | Subject | Re: [PATCH v1 4/6] iommu/vt-d: Add VTD_FLAG_IOMMU_PROBED flag | From | Baolu Lu <> |
| |
On 6/30/22 4:29 PM, Tian, Kevin wrote: >> From: Lu Baolu <baolu.lu@linux.intel.com> >> Sent: Saturday, June 25, 2022 8:52 PM >> >> In the IOMMU hot-add path, there's a need to check whether an IOMMU >> has been probed. Instead of checking the IOMMU pointer in the global >> list, it's better to allocate a flag bit in iommu->flags for this >> purpose. > > Sorry I didn't get the point of original check. This is the hotplug path > hence the caller of this function should already figure out it's a new > iommu before reaching this point? >
Either did I. It was added by below commit without any comments about this check.
commit ffebeb46dd34736c90ffbca1ccb0bef8f4827c44 Author: Jiang Liu <jiang.liu@linux.intel.com> Date: Sun Nov 9 22:48:02 2014 +0800
iommu/vt-d: Enhance intel-iommu driver to support DMAR unit hotplug
Implement required callback functions for intel-iommu driver to support DMAR unit hotplug.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Reviewed-by: Yijing Wang <wangyijing@huawei.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
I went through the whole hot-add process and found this check seemed to be duplicate.
Hot-add process starts from dmar_device_hotplug(), it uses a rwlock to synchronize the hot-add paths.
2386 down_write(&dmar_global_lock); 2387 if (insert) 2388 ret = dmar_hotplug_insert(tmp); 2389 else 2390 ret = dmar_hotplug_remove(tmp); 2391 up_write(&dmar_global_lock);
dmar_device_hotplug() ->dmar_hotplug_insert() -->dmar_parse_one_drhd() /* the added intel_iommu is allocated here*/ -->dmar_hp_add_drhd() /* the intel_iommu is about to bring up */ --->intel_iommu_add()
The duplicate check here:
if (g_iommus[iommu->seq_id]) return 0;
All the iommu units are allocated and then initialized in the same synchronized path. There is no need to check a duplicate initialization.
I would like to remove this check if no objection.
Best regards, baolu
| |