On Wed, Mar 29, 2017 at 05:24:18PM +0800, Jason Wang wrote: > > > On 2017年03月29日 17:11, Paolo Bonzini wrote: > > > > On 29/03/2017 11:09, Jason Wang wrote: > > > > > This looks a good fix but may not solve this issue completely. Depends > > > > > on the iova that guest uses, address_space_cache_init() may succeed > > > > > even > > > > > in this case since vtd does a passthrough translation in this case. > > > > Can you explain this more? > > > Yes. In this case, virtio-net-pci is not reset, but vtd has been reset. > > > So virtio-net-pci will still try to use the iova of ring to setup the > > > cache but now vtd treat iova as gpa since dmar has been disabled during > > > reset. (E.g In my test with Linux driver, desc map succeed but used fail.) > > That would be a Linux bug, the devices below the IOMMU have to be reset > > first. > > > > Paolo > > Maybe, but I meet the same issue if I do a "system_reset". I think we should > guarantee IOMMU was reset after any pci devices in this case too? > > Thanks >
system reset would indeed appear to be a big issue. -- MST