• David Matlack's avatar
    KVM: x86/mmu: Leverage vcpu->last_used_slot for rmap_add and rmap_recycle · 601f8af0
    David Matlack authored
    rmap_add() and rmap_recycle() both run in the context of the vCPU and
    thus we can use kvm_vcpu_gfn_to_memslot() to look up the memslot. This
    enables rmap_add() and rmap_recycle() to take advantage of
    vcpu->last_used_slot and avoid expensive memslot searching.
    
    This change improves the performance of "Populate memory time" in
    dirty_log_perf_test with tdp_mmu=N. In addition to improving the
    performance, "Populate memory time" no longer scales with the number
    of memslots in the VM.
    
    Command                         | Before           | After
    ------------------------------- | ---------------- | -------------
    ./dirty_log_perf_test -v64 -x1  | 15.18001570s     | 14.99469366s
    ./dirty_log_perf_test -v64 -x64 | 18.71336392s     | 14.98675076s
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarDavid Matlack <dmatlack@google.com>
    Message-Id: <20210804222844.1419481-6-dmatlack@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    601f8af0
mmu.c 164 KB