Message ID | 20210922045859.2011227-1-stevensd@google.com (mailing list archive) |
---|---|
Headers | show |
Series | KVM: x86: skip gfn_track allocation when possible | expand |
On 22/09/21 06:58, David Stevens wrote: > From: David Stevens<stevensd@chromium.org> > > Skip allocating gfn_track arrays when tracking of guest write access to > pages is not required. For VMs where the allocation can be avoided, this > saves 2 bytes per 4KB of guest memory. > > Write tracking is used to manage shadow page tables in three cases - > when tdp is not supported, when nested virtualization is used, and for > GVT-g. If tdp_enable is set and the kernel is compiled without GVT-g, > then the gfn_track arrays can be allocated lazily when the shadow MMU is > initialized. > > v1 -> v2: > - lazily allocate gfn_track when shadow MMU is initialized, instead > of looking at cpuid Queued, thanks. paolo
From: David Stevens <stevensd@chromium.org> Skip allocating gfn_track arrays when tracking of guest write access to pages is not required. For VMs where the allocation can be avoided, this saves 2 bytes per 4KB of guest memory. Write tracking is used to manage shadow page tables in three cases - when tdp is not supported, when nested virtualization is used, and for GVT-g. If tdp_enable is set and the kernel is compiled without GVT-g, then the gfn_track arrays can be allocated lazily when the shadow MMU is initialized. v1 -> v2: - lazily allocate gfn_track when shadow MMU is initialized, instead of looking at cpuid David Stevens (2): KVM: x86: add config for non-kvm users of page tracking KVM: x86: only allocate gfn_track when necessary arch/x86/include/asm/kvm_host.h | 8 ++++ arch/x86/include/asm/kvm_page_track.h | 5 +- arch/x86/kvm/Kconfig | 3 ++ arch/x86/kvm/mmu/mmu.c | 7 +++ arch/x86/kvm/mmu/page_track.c | 69 ++++++++++++++++++++++++++- arch/x86/kvm/x86.c | 2 +- drivers/gpu/drm/i915/Kconfig | 1 + 7 files changed, 91 insertions(+), 4 deletions(-)