• David Matlack's avatar
    KVM: x86/mmu: Leverage vcpu->last_used_slot in tdp_mmu_map_handle_target_level · 081de470
    David Matlack authored
    The existing TDP MMU methods to handle dirty logging are vcpu-agnostic
    since they can be driven by MMU notifiers and other non-vcpu-specific
    events in addition to page faults. However this means that the TDP MMU
    is not benefiting from the new vcpu->last_used_slot. Fix that by
    introducing a tdp_mmu_map_set_spte_atomic() which is only called during
    a TDP page fault and has access to the kvm_vcpu for fast slot lookups.
    
    This improves "Populate memory time" in dirty_log_perf_test by 5%:
    
    Command                         | Before           | After
    ------------------------------- | ---------------- | -------------
    ./dirty_log_perf_test -v64 -x64 | 5.472321072s     | 5.169832886s
    Signed-off-by: default avatarDavid Matlack <dmatlack@google.com>
    Message-Id: <20210804222844.1419481-5-dmatlack@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    081de470
tdp_mmu.c 46 KB