[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BN9PR11MB5276E263D89459506396A84A8CBD9@BN9PR11MB5276.namprd11.prod.outlook.com>
Date: Fri, 1 Jul 2022 06:09:52 +0000
From: "Tian, Kevin" <kevin.tian@...el.com>
To: Baolu Lu <baolu.lu@...ux.intel.com>,
Joerg Roedel <joro@...tes.org>, Steve Wahl <steve.wahl@....com>
CC: David Woodhouse <dwmw2@...radead.org>,
Jerry Snitselaar <jsnitsel@...hat.com>,
Mike Travis <mike.travis@....com>,
Dimitri Sivanich <sivanich@....com>,
"Anderson, Russ" <russ.anderson@....com>,
"iommu@...ts.linux.dev" <iommu@...ts.linux.dev>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v1 4/6] iommu/vt-d: Add VTD_FLAG_IOMMU_PROBED flag
> From: Baolu Lu <baolu.lu@...ux.intel.com>
> Sent: Friday, July 1, 2022 11:13 AM
>
> On 6/30/22 4:29 PM, Tian, Kevin wrote:
> >> From: Lu Baolu <baolu.lu@...ux.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@...ux.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@...ux.intel.com>
> Reviewed-by: Yijing Wang <wangyijing@...wei.com>
> Signed-off-by: Joerg Roedel <jroedel@...e.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.
>
This matches my impression.
Powered by blists - more mailing lists