lkml.org 
[lkml]   [2021]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 11/15] KVM: VMX: Update vmcs.GUEST_CR3 only when the guest CR3 is dirty
    From


    On 2021/12/16 00:31, Lai Jiangshan wrote:

    >
    > What I missed is the case of "if (!enable_unrestricted_guest && !is_paging(vcpu))"
    > in vmx_load_mmu_pgd() which doesn't load GUEST_CR3 but clears dirty of VCPU_EXREG_CR3
    > (when after next run).

    Oops.

    What I missed is the case of "if (!enable_unrestricted_guest && !is_paging(vcpu))"
    in vmx_load_mmu_pgd() which doesn't load GUEST_CR3 with the guest cr3 and
    VCPU_EXREG_CR3 dirty bit is cleared after VMEXIT. When !PG -> PG, GUEST_CR3 is
    still the ept_identity_map_addr, and VCPU_EXREG_CR3 dirty bit is not set, so
    vmx_load_mmu_pgd() doesn't update GUEST_CR3.


    > So when CR0 !PG -> PG, VCPU_EXREG_CR3 dirty bit should be set.
    >

    \
     
     \ /
      Last update: 2021-12-15 17:44    [W:21.653 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site