KVM: x86/mmu: Move filling of Hyper-V's TLB range struct into Hyper-V code
authorSean Christopherson <seanjc@google.com>
Wed, 5 Apr 2023 00:31:33 +0000 (17:31 -0700)
committerSean Christopherson <seanjc@google.com>
Mon, 10 Apr 2023 22:17:29 +0000 (15:17 -0700)
commit9ed3bf411226f446a9795f2b49a15b9df98d7cf5
treedfbe8e6c2ec072d9d97120f4c79d18074b37e110
parent8a1300ff95185b23baff9c226a001c269108f9ea
KVM: x86/mmu: Move filling of Hyper-V's TLB range struct into Hyper-V code

Refactor Hyper-V's range-based TLB flushing API to take a gfn+nr_pages
pair instead of a struct, and bury said struct in Hyper-V specific code.

Passing along two params generates much better code for the common case
where KVM is _not_ running on Hyper-V, as forwarding the flush on to
Hyper-V's hv_flush_remote_tlbs_range() from kvm_flush_remote_tlbs_range()
becomes a tail call.

Cc: David Matlack <dmatlack@google.com>
Reviewed-by: David Matlack <dmatlack@google.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20230405003133.419177-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/kvm_onhyperv.c
arch/x86/kvm/kvm_onhyperv.h
arch/x86/kvm/mmu/mmu.c