Re: [PATCH 1/4] KVM: nVMX: move vmentry tasks from prepare_vmcs12 to enter_vmx_non_root_mode

From: Paolo Bonzini
Date: Wed Aug 23 2017 - 17:47:32 EST


On 23/08/2017 23:25, Jim Mattson wrote:
>> + if (from_vmentry) {
>> + vmcs12->launch_state = 1;
> Because we defer most guest state validity checks to the hardware
> vmlaunch of the vmcs02, it is too early to set the vmcs12 launched
> state here. If the exit reason has the high bit set,
> vmcs12->launch_state should not be modified.

Thanks---I'll do my homework and add a testcase then. :) The launched
state cannot be discovered with VMREAD, but I can test that a
VMLAUNCH;VMLAUNCH works and a VMLAUNCH;VMRESUME fails.

The same applies for the next instruction, which is part of step 6 of
the vmentry ("An event may be injected in the guest context"). This one
can be tested with VMREAD.

Paolo

>> +
>> + /* vm_entry_intr_info_field is cleared on exit. Emulate this
>> + * instead of reading the real value. */
>> + vmcs12->vm_entry_intr_info_field &= ~INTR_INFO_VALID_MASK;