• Paolo Bonzini's avatar
    KVM: delete .change_pte MMU notifier callback · f3b65bba
    Paolo Bonzini authored
    The .change_pte() MMU notifier callback was intended as an
    optimization. The original point of it was that KSM could tell KVM to flip
    its secondary PTE to a new location without having to first zap it. At
    the time there was also an .invalidate_page() callback; both of them were
    *not* bracketed by calls to mmu_notifier_invalidate_range_{start,end}(),
    and .invalidate_page() also doubled as a fallback implementation of
    .change_pte().
    
    Later on, however, both callbacks were changed to occur within an
    invalidate_range_start/end() block.
    
    In the case of .change_pte(), commit 6bdb913f ("mm: wrap calls to
    set_pte_at_notify with invalidate_range_start and invalidate_range_end",
    2012-10-09) did so to remove the fallback from .invalidate_page() to
    .change_pte() and allow sleepable .invalidate_page() hooks.
    
    This however made KVM's usage of the .change_pte() callback completely
    moot, because KVM unmaps the sPTEs during .invalidate_range_start()
    and therefore .change_pte() has no hope of finding a sPTE to change.
    Drop the generic KVM code that dispatches to kvm_set_spte_gfn(), as
    well as all the architecture specific implementations.
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Acked-by: default avatarAnup Patel <anup@brainfault.org>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
    Reviewed-by: default avatarBibo Mao <maobibo@loongson.cn>
    Message-ID: <20240405115815.3226315-2-pbonzini@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    f3b65bba
book3s_64_mmu_hv.c 52.4 KB