Re: [PATCH] KVM: nVMX: Fix CR4 after VMLAUNCH/VMRESUME failure

From: Wanpeng Li
Date: Wed Feb 07 2018 - 03:31:14 EST


2018-02-07 0:58 GMT+08:00 Jim Mattson <jmattson@xxxxxxxxxx>:
> On Mon, Feb 5, 2018 at 4:57 PM, Wanpeng Li <kernellwp@xxxxxxxxx> wrote:
>
>> This is effective one, what I restore in this patch is
>> achitectural/guest visible.
>
> This patch doesn't "restore" the guest visible CR4 to its value at the
> time of VMLAUNCH/VMRESUME. It loads a new CR4 value from the vmcs12.
> That behavior is incorrect.

You have another pointing out about this.
https://lkml.org/lkml/2018/2/5/518 vmcs12->host_cr3/host_cr4 has the
up-to-date value when L1 is running, it is still up-to-date after
vmexit due to L1 executes VMLAUNCH/VMRESUME, I think the value stays
the same before L0 emulates the VMLAUNCH/VMRESUME, according to below
comments, why vmcs12->host_cr3/cr4 is not the value which we should
restore?

* After an early L2 VM-entry failure, we're now back
* in L1 which thinks it just finished a VMLAUNCH or
* VMRESUME instruction

Regards,
Wanpeng Li