lkml.org 
[lkml]   [2021]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH 6/7] KVM: nVMX: don't load PDPTRS right after nested state set
Date
On 17/02/21 18:52, Sean Christopherson wrote:
>>
>> Just move the call to nested_vmx_load_cr3 to nested_get_vmcs12_pages
>> to implement this.
>
> I don't love this approach. KVM_SET_NESTED_STATE will now succeed with a bad
> vmcs12.GUEST_CR3. At a minimum, GUEST_CR3 should be checked in
> nested_vmx_check_guest_state(). It also feels like vcpu->arch.cr3 should be set
> immediately, e.g. KVM_SET_NESTED_STATE -> KVM_GET_SREGS should reflect L2's CR3
> even if KVM_RUN hasn't been invoked.

Note that KVM_SET_NESTED_STATE does not remove the need to invoke
KVM_SET_SREGS. Calling KVM_SET_NESTED_STATE does not necessarily saying
anything about the value of KVM_GET_SREGS after it.

In particular on SVM it's a "feature" that KVM_SET_NESTED_STATE does not
include any guest register state; the nested state only includes the
VMCB12 control state and the L1 save state. But thinking more about it,
loading the PDPTRs for the guest CR3 might not be advisable even upon
KVM_SET_SREGS, and we might want to extend KVM_REQ_GET_NESTED_PAGES to
cover non-nested PDPTRs as well.

Paolo

\
 
 \ /
  Last update: 2021-02-17 19:11    [W:0.056 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site