• Sean Christopherson's avatar
    KVM: x86/mmu: Account NX huge page disallowed iff huge page was requested · 5bcaf3e1
    Sean Christopherson authored
    Condition the accounting of a disallowed huge NX page on the original
    requested level of the page being greater than the current iterator
    level.  This does two things: accounts the page if and only if a huge
    page was actually disallowed, and accounts the shadow page if and only
    if it was the level at which the huge page was disallowed.  For the
    latter case, the previous logic would account all shadow pages used to
    create the translation for the forced small page, e.g. even PML4, which
    can't be a huge page on current hardware, would be accounted as having
    been a disallowed huge page when using 5-level EPT.
    
    The overzealous accounting is purely a performance issue, i.e. the
    recovery thread will spuriously zap shadow pages, but otherwise the bad
    behavior is harmless.
    
    Cc: Junaid Shahid <junaids@google.com>
    Fixes: b8e8c830 ("kvm: mmu: ITLB_MULTIHIT mitigation")
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20200923183735.584-6-sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    5bcaf3e1
paging_tmpl.h 30.8 KB