rmap_remove() would remove the sptep after locating the correct rmap_head. While in several cases, the caller has already known the correct rmap_head. This patch set tries to remove a spte from rmap_head directly. The original discussion is posted at: https://patchwork.kernel.org/patch/10615385/ This version dose some change based on Paolo's comments: * rename the original pte_list_remove to __pte_list_remove * remove the *if* check on mmu_spte_clear_track_bits in new pte_list_remove * move mmu_spte_clear_track_bits before *if* branch in kvm_set_pte_rmapp Wei Yang (3): KVM: x86: rename pte_list_remove to __pte_list_remove KVM: x86: a new pte_list_remove including mmu_spte_clear_track_bits KVM: x86: extract mmu_spte_clear_track_bits in the loop of kvm_set_pte_rmapp arch/x86/kvm/mmu.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) -- 2.15.1