Hi David, Good suggestion! It should make hotplug logic simpler too. Will try to work out some patches for it. Thanks! Gerry On 2014/3/7 2:25, David Woodhouse wrote: > On Wed, 2014-02-19 at 14:07 +0800, Jiang Liu wrote: >> Current Intel DMAR/IOMMU driver assumes that all PCI devices >> associated >> with DMAR/RMRR/ATSR device scope arrays are created at boot time and >> won't change at runtime, so it caches pointers of associated PCI >> device >> object. That assumption may be wrong now due to: >> 1) introduction of PCI host bridge hotplug >> 2) PCI device hotplug through sysfs interfaces. > ... >> This patch introduces a new mechanism to update the DRHD/RMRR/ATSR >> device scope caches by hooking PCI bus notification. > > Hm, this seems overly complex. Can't we just abandon the > dmaru->devices[] array completely? In dmar_find_matched_drhd_unit() > can't we just compare the path in the scope entries directly to the PCI > device we are trying to find a DRHD for? > > We then cache the result in dev->archdata.iommu for ever (well, until > hot-unplug) anyway, so it shouldn't even be any less efficient to do it > on demand, right? > > That's true at least for dmar_find_matched_drhd_unit(). Perhaps we'd > need to find a way to cache the result for > dmar_find_matched_atsr_unit()? > -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html