diff mbox series

KVM: x86/mmu: add missing update to max_mmu_rmap_size

Message ID 20220907080657.42898-1-linmiaohe@huawei.com (mailing list archive)
State New, archived
Headers show
Series KVM: x86/mmu: add missing update to max_mmu_rmap_size | expand

Commit Message

Miaohe Lin Sept. 7, 2022, 8:06 a.m. UTC
The update to statistic max_mmu_rmap_size is unintentionally removed by
commit 4293ddb788c1 ("KVM: x86/mmu: Remove redundant spte present check
in mmu_set_spte"). Add missing update to it or max_mmu_rmap_size will
always be nonsensical 0.

Fixes: 4293ddb788c1 ("KVM: x86/mmu: Remove redundant spte present check in mmu_set_spte")
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
---
 arch/x86/kvm/mmu/mmu.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Sean Christopherson Sept. 7, 2022, 2:26 p.m. UTC | #1
On Wed, Sep 07, 2022, Miaohe Lin wrote:
> The update to statistic max_mmu_rmap_size is unintentionally removed by
> commit 4293ddb788c1 ("KVM: x86/mmu: Remove redundant spte present check
> in mmu_set_spte"). Add missing update to it or max_mmu_rmap_size will
> always be nonsensical 0.
> 
> Fixes: 4293ddb788c1 ("KVM: x86/mmu: Remove redundant spte present check in mmu_set_spte")

For anyone else wondering "how did so many reviewers miss this obvious bug?", the
answer is that the reviews were collected for v3 and earlier, and the mishandled
merge conflict only showed up in v4.

> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---

Reviewed-by: Sean Christopherson <seanjc@google.com>


Paolo, do you want to grab this for 6.0?
Paolo Bonzini Sept. 22, 2022, 9:03 p.m. UTC | #2
Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index d25d55b1f0b5..858bc53cfab4 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -1596,6 +1596,8 @@  static void __rmap_add(struct kvm *kvm,
 	rmap_head = gfn_to_rmap(gfn, sp->role.level, slot);
 	rmap_count = pte_list_add(cache, spte, rmap_head);
 
+	if (rmap_count > kvm->stat.max_mmu_rmap_size)
+		kvm->stat.max_mmu_rmap_size = rmap_count;
 	if (rmap_count > RMAP_RECYCLE_THRESHOLD) {
 		kvm_zap_all_rmap_sptes(kvm, rmap_head);
 		kvm_flush_remote_tlbs_with_address(