• Sean Christopherson's avatar
    KVM: x86/mmu: skip over invalid root pages when zapping all sptes · 8a674adc
    Sean Christopherson authored
    ...to guarantee forward progress.  When zapped, root pages are marked
    invalid and moved to the head of the active pages list until they are
    explicitly freed.  Theoretically, having unzappable root pages at the
    head of the list could prevent kvm_mmu_zap_all() from making forward
    progress were a future patch to add a loop restart after processing a
    page, e.g. to drop mmu_lock on contention.
    
    Although kvm_mmu_prepare_zap_page() can theoretically take action on
    invalid pages, e.g. to zap unsync children, functionally it's not
    necessary (root pages will be re-zapped when freed) and practically
    speaking the odds of e.g. @unsync or @unsync_children becoming %true
    while zapping all pages is basically nil.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    8a674adc
mmu.c 160 KB