An NVMe device configured in static identity mapping should also cause this error when removed and rescanned. Essentially, a device that does a DMA when its driver inits, or one that you can force a DMA from. On Fri, Feb 22, 2019 at 12:28 AM James Dong wrote: > Baolu: > > The reproduction depends on devices. HW passthrough PCIe devices with > default > identity map could have the issue. Make sure that messages like following > came > out in dmesg and their mapping does not change after booting: > [ 10.167809] DMAR: Hardware identity mapping for device 0000:30:00.0 > [ 10.167823] DMAR: Hardware identity mapping for device 0000:30:00.1 > > Devices which make following true could also be used for the experiment: > > static int iommu_should_identity_map(struct device *dev, int startup) > > { > > if ((iommu_identity_mapping & IDENTMAP_AZALIA) && > IS_AZALIA(pdev)) > > return 1; > > if ((iommu_identity_mapping & IDENTMAP_GFX) && > IS_GFX_DEVICE(pdev)) > > return 1; > > Once they are up, remove them first by following command: > echo 1 > /sys/bus/pci/devices/0000\:03\:00.1/remove > > Then trigger the hotplug device rescanning: > echo 1 > /sys/bus/pci/rescan > > To provide an example of specific devices on the market, I need to try out. > Or, if it is fine with you, forcing a PCIe NIC card to be default hardware > passthrough by changing the intel-iommu.c is another easy way to reproduce > this issue. > > Best Regards, > James >