[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] hap_invlpg() vs INVLPGA
>>> On 29.01.16 at 18:09, <chegger@xxxxxxxxx> wrote: > On 29/01/16 16:53, Jan Beulich wrote: >>>>> On 29.01.16 at 15:02, <chegger@xxxxxxxxx> wrote: >>> On 29/01/16 14:57, Egger, Christoph wrote: >>>> On 29/01/16 14:24, Jan Beulich wrote: >>>>> Christoph, >>>>> >>>>> in commit dd6de3ab99 ("Implement Nested-on-Nested") you added >>>>> code to hap_invlpg() supposedly emulating INVLPGA. I've been >>>>> stumbling across this a number of times in the past, not being able >>>>> to make the connection between (a) VMX/EPT and INVLPGA and >>>>> (b) SVM's INVLPGA intercept and this function. >>>> >>>> When you boot Windows 7 as L1 guest and XP-Mode as L2 guest then >>>> L2 guest uses INVLPG instruction to invalidate a page and L1 guest >>>> handles this via using INVLPGA instruction. >>>> >>>> The INVLPG intercept flushes the nested hap p2m which is effectively >>>> a TLB flush to the L1 guest. >>> >>> ... actually to the L2 guest. Sorry for the typo. >> >> So if the L1 guest does an INVLPGA, we should see an INVLPGA >> intercept, not an INVLPG one. > > INVLPG intercept comes first from L2 then INVLPGA from L1. I.e. Xen's action should be in response to the intercepted INVLPGA, which afaict wouldn't lead to hap_invlpg(). >>>> Then this intercept is injected into L1 guest. >> >> This, otoh, reads as if you imply we intercept the L2's INVLPG. >> Yet the INVLPG intercept gets cleared when the domain uses >> NPT (and your original change also didn't alter any intercept >> settings). Hence I'm still lost how hap_invlpg() can be reached >> in that case other than via emulating INVLPG in the instruction >> emulator. > > svm_invlpg_intercept() and vmx_invlpg_intercept() call > paging_invlpg(). paging_invlpg() calls hap_invlpg() > as initialized in xen/arch/x86/mm/hap/hap.c That's all fine, but according to my previous reply: How does execution reach svm_invlpg_intercept() when the INVLPG intercept gets disabled for domains using HAP (NPT)? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |