[PATCH v4 0/3] Add detailed page size stats in KVM stats

From: Mingwei Zhang
Date: Tue Aug 03 2021 - 00:46:58 EST

This commit basically adds detailed (large and regular) page size info to
KVM stats and deprecate the old one: lpages.

To support legacy MMU and TDP mmu, we use atomic type for all page stats.

v3 -> v4:
- rebase to origin/queue. [sean]
- replace the lpages with page stats in place to avoid conflicts. [sean]

v2 -> v3:
- move kvm_update_page_stats to mmu.h as a static inline function. [sean]
- remove is_last_spte check in mmu_spte_clear_track_bits. [bgardon]
- change page_stats union by making it anonymous. [dmatlack]

v1 -> v2:
- refactor kvm_update_page_stats and remove 'spte' argument. [sean]
- remove 'lpages' as it can be aggregated by user level [sean]
- fix lpages stats update issue in __handle_change_pte [sean]
- fix style issues and typos. [ben/sean]

pre-v1 (internal reviewers):
- use atomic in all page stats and use 'level' as index. [sean]
- use an extra argument in kvm_update_page_stats for atomic/non-atomic.
- should be careful on the difference between legacy mmu and tdp mmu.

Mingwei Zhang (2):
KVM: x86/mmu: Remove redundant spte present check in mmu_set_spte
KVM: x86/mmu: Add detailed page size stats

Sean Christopherson (1):
KVM: x86/mmu: Avoid collision with !PRESENT SPTEs in TDP MMU lpage

arch/x86/include/asm/kvm_host.h | 10 ++++++-
arch/x86/kvm/mmu.h | 4 +++
arch/x86/kvm/mmu/mmu.c | 50 +++++++++++++++------------------
arch/x86/kvm/mmu/tdp_mmu.c | 9 ++----
arch/x86/kvm/x86.c | 5 +++-
5 files changed, 42 insertions(+), 36 deletions(-)