On 2016年12月06日 14:51, Peter Xu wrote: > On Tue, Dec 06, 2016 at 02:30:24PM +0800, Lan Tianyu wrote: > > [...] > >>>> 2. How to restore GPA->HPA mapping when IOVA is disabled by guest. >>>> When guest enables IOVA for device, vIOMMU will invalidate all previous >>>> GPA->HPA mapping and update IOVA->HPA mapping to pIOMMU via iommu >>>> notifier. But if IOVA is disabled, I think we should restore GPA->HPA >>>> mapping for the device otherwise the device won't work again in the VM. >>> >>> If we can have a workable replay mechanism, this problem will be >>> solved IMHO. >> >> Basic idea is to replay related memory regions to restore GPA->HPA >> mapping when guest disables IOVA. > > Btw, could you help elaborate in what case we will trigger such a > condition? Or, can we dynamically enable/disable an IOMMU?
First case I think of is nest virtualization and we assign physical device to l2 guest. User space driver(E.G DPDK) also can enable/disable IOVA for device dynamically. -- Best regards Tianyu Lan