Commit 1699f65c authored by Shahin, Md Shahadat Hossain's avatar Shahin, Md Shahadat Hossain Committed by Paolo Bonzini
Browse files

kvm/x86: Fix 'lpages' kvm stat for TDM MMU



Large pages not being created properly may result in increased memory
access time. The 'lpages' kvm stat used to keep track of the current
number of large pages in the system, but with TDP MMU enabled the stat
is not showing the correct number.

This patch extends the lpages counter to cover the TDP case.

Signed-off-by: default avatarMd Shahadat Hossain Shahin <shahinmd@amazon.de>
Cc: Bartosz Szczepanek <bsz@amazon.de>
Message-Id: <1619783551459.35424@amazon.de>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent ff76d506
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -444,6 +444,13 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,

	trace_kvm_tdp_mmu_spte_changed(as_id, gfn, level, old_spte, new_spte);

	if (is_large_pte(old_spte) != is_large_pte(new_spte)) {
		if (is_large_pte(old_spte))
			atomic64_sub(1, (atomic64_t*)&kvm->stat.lpages);
		else
			atomic64_add(1, (atomic64_t*)&kvm->stat.lpages);
	}

	/*
	 * The only times a SPTE should be changed from a non-present to
	 * non-present state is when an MMIO entry is installed/modified/