[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] hap_invlpg() vs INVLPGA
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. > Then this intercept is injected into L1 guest. > > The INVLPGA instruction enforces a new ASID. > > If the nested hap p2m is NULL then p2m_flush() should effectively > be a noop but it may not crash the guest. > > What I don't remember is if Windows 7 must be 32bit or 64bit > to reproduce this. > > Christoph > >> I'm asking in the context of a reported crash resulting from the >> nv_p2m field being NULL during emulation of an INVLPG instruction >> in a guest with nesting enabled but - afaict - not actually used. Of >> course I could submit a patch adding a NULL check here, but I'd >> like to understand what this code is for, and hence whether the >> better fix wouldn't be to get rid of it. >> >> Jan > Amazon Development Center Germany GmbH Berlin - Dresden - Aachen main office: Krausenstr. 38, 10117 Berlin Geschaeftsfuehrer: Dr. Ralf Herbrich, Christian Schlaeger Ust-ID: DE289237879 Eingetragen am Amtsgericht Charlottenburg HRB 149173 B _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |