On Mon, 10 Oct 2022 20:19:11 +0800, Hou Wenlong wrote: > Commit c3134ce240eed ("KVM: Replace old tlb flush function with new one > to flush a specified range.") replaces old tlb flush function with > kvm_flush_remote_tlbs_with_address() to do tlb flushing. However, the > gfn range of tlb flushing is wrong in some cases. E.g., when a spte is > dropped, the start gfn of tlb flushing should be the gfn of spte not the > base gfn of SP which contains the spte. Although, as Paolo said, Hyper-V > may treat a 1-page flush the same if the address points to a huge page, > and no fixes are reported so far. So it seems that it works well for > Hyper-V. But it would be better to use the correct size for huge page. > So this patchset would fix them and introduce some helper functions as > David suggested to make the code clear. > > [...] David and/or Hou, it's probably a good idea to double check my results, there were a few minor conflicts and I doubt anything would fail if I messed up. Applied to kvm-x86 mmu, thanks! [1/6] KVM: x86/mmu: Move round_gfn_for_level() helper into mmu_internal.h https://github.com/kvm-x86/linux/commit/bb05964f0a3c [2/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp() https://github.com/kvm-x86/linux/commit/564246ae7da2 [3/6] KVM: x86/mmu: Reduce gfn range of tlb flushing in tdp_mmu_map_handle_target_level() https://github.com/kvm-x86/linux/commit/c6753e20e09d [4/6] KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range https://github.com/kvm-x86/linux/commit/4fa7e22ed6ed [5/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in validate_direct_spte() https://github.com/kvm-x86/linux/commit/976d07c25056 [6/6] KVM: x86/mmu: Cleanup range-based flushing for given page https://github.com/kvm-x86/linux/commit/f9309825c4b1 -- https://github.com/kvm-x86/linux/tree/next https://github.com/kvm-x86/linux/tree/fixes