On Wed, Apr 17, 2013 at 05:59:50PM +0300, Abel Gordon wrote: > > > Gleb Natapov <gleb@xxxxxxxxxx> wrote on 17/04/2013 05:34:49 PM: > > > > @@ -5716,6 +5725,10 @@ static void nested_vmx_failValid(struct > > > X86_EFLAGS_SF | X86_EFLAGS_OF)) > > > | X86_EFLAGS_ZF); > > > get_vmcs12(vcpu)->vm_instruction_error = vm_instruction_error; > > > + /* > > > + * We don't need to force a shadow sync because > > > + * VM_INSTRUCTION_ERROR is not shdowed > > ---------------------------------------^ shadowed. > > But lets just request sync. This is slow path anyway. > > Why then ? Because we do not care how fast the error case is handled, so no point breaking the rules for it. > Note this will require to call copy_shadow_to_vmcs12 > because nested_vmx_failValid can be called while L0 handles a L1 > exit (for vmx instruction emulation) and the shadow vmcs could > have been modified by L1 before the exit. > Right, not a big deal if this is the only case when it happens. When we discussed accessors vs sync_shadow_vmcs flag approach I said that flag will work only if no vmcs12 fields are changed not as part of vmexit or vmwrite emulations. This one is such a field unfortunately. Hope it is the only one. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html