qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 7/7] intel_iommu: support passthrough (PT)


From: Liu, Yi L
Subject: Re: [Qemu-devel] [PATCH v2 7/7] intel_iommu: support passthrough (PT)
Date: Tue, 18 Apr 2017 06:02:44 +0000

> > Hi Peter,
> >
> > Skip address space switching is a good idea to support Passthru mode.
> > However, without the address space, the vfio notifier would not be
> > registered, thus vIOMMU emulator has no way to connect to host. It is
> > no harm if there is only map/unmap notifier. But if we have more
> > notifiers other than map/unmap, it may be a problem.
> >
> > I think we need to reconsider it here.
> 
> For now I think as switching is good to us in general. Could I know more 
> context
> about this? Would it be okay to work on top of this in the future?
> 

Let me explain. For vSVM enabling, it needs to add new notifier to bind gPASID 
table
to host. If an assigned device uses SVM in guest, as designed guest IOMMU 
driver would
set "pt" for it. This is to make sure the host second-level page table stores 
GPA->HPA
mapping. So that pIOMMU can do nested translation to achieve gVA->GPA GPA->HPA 
mapping.

So the situation is if we want to keep GPA->HPA mapping, we should skip address 
space
switch, but the vfio listener would not know vIOMMU is added, so no vfio 
notifier would
be registered. But if we do the switch, the GPA->HPA mapping is unmapped. And 
need
another way to build the GPA->HPA mapping.

I think we may have two choice here. Pls let me know your ideas.

1. skip the switch for "pt" mode, find other way to register vfio notifiers. 
not sure if this
is workable. Just a quick thought.

2. do the switch, and rebuild GPA->HPA mapping if device use "pt" mode. For 
this option,
I also have two way to build the GPA->HPA mapping.
a) walk all the memory region sections in address_space_memory, and build the 
mapping.
address_space_memory.dispatch->map.sections, sections stores all the mapped 
sections.

b) let guest iommu driver mimics a 1:1 mapping for the devices use "pt" mode. 
in this way,
the GPA->HPA mapping could be setup by walking the guest SL page table. This is 
consistent
with your vIOVA replay solution.

Also I'm curious if Tianyu's fault report framework needs to register new 
notifiers.

Thanks,
Yi L

reply via email to

[Prev in Thread] Current Thread [Next in Thread]