Re: [Question] some questions about vmx

From: Vitaly Kuznetsov
Date: Thu Feb 06 2020 - 07:00:11 EST


linmiaohe <linmiaohe@xxxxxxxxxx> writes:

> About nWMX.
> When nested_vmx_handle_enlightened_vmptrld() return 0, it do not inject any exception or set rflags to
> Indicate VMLAUNCH instruction failed and skip this instruction. This would cause nested_vmx_run()
> return 1 and resume guest and retry this instruction. When the error causing nested_vmx_handle_enlightened_vmptrld()
> failed can't be handled, would deadloop ouucr ?

Yes, it seems it can.

nested_vmx_handle_enlightened_vmptrld() has two possible places where it
can fail:

kvm_vcpu_map() -- meaning that the guest passed some invalid GPA.
revision id check -- meaning that the supplied eVMCS is
unsupported/garbage.

I think the right behavior would be to nested_vmx_failInvalid() in both
these cases. We can also check what genuing Hyper-V does.

--
Vitaly