linux/arch
Ben Gardon 5ba7c4c6d1 KVM: x86/MMU: Zap non-leaf SPTEs when disabling dirty logging
Currently disabling dirty logging with the TDP MMU is extremely slow.
On a 96 vCPU / 96G VM backed with gigabyte pages, it takes ~200 seconds
to disable dirty logging with the TDP MMU, as opposed to ~4 seconds with
the shadow MMU.

When disabling dirty logging, zap non-leaf parent entries to allow
replacement with huge pages instead of recursing and zapping all of the
child, leaf entries. This reduces the number of TLB flushes required.
and reduces the disable dirty log time with the TDP MMU to ~3 seconds.

Opportunistically add a WARN() to catch GFNs that are mapped at a
higher level than their max level.

Signed-off-by: Ben Gardon <bgardon@google.com>
Message-Id: <20220525230904.1584480-1-bgardon@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-06-07 11:28:49 -04:00
..
alpha
arc ARC: remove redundant READ_ONCE() in cmpxchg loop 2022-04-18 14:47:05 -07:00
arm hotfixes for 5.18-rc7 2022-05-13 10:22:37 -07:00
arm64 KVM/riscv changes for 5.19 2022-05-25 05:09:49 -04:00
csky
h8300
hexagon
ia64
m68k
microblaze
mips MIPS: Fix CP0 counter erratum detection for R4k CPUs 2022-04-29 15:52:00 +02:00
nios2
openrisc
parisc Revert "parisc: Increase parisc_cache_flush_threshold setting" 2022-05-08 20:13:36 +02:00
powerpc powerpc fixes for 5.18 #5 2022-05-15 06:46:03 -07:00
riscv RISC-V: KVM: Introduce ISA extension register 2022-05-20 09:09:20 +05:30
s390 KVM: s390: Fix and feature for 5.19 2022-05-25 05:11:21 -04:00
sh
sparc sparc: cacheflush_32.h needs struct page 2022-04-23 09:27:17 -07:00
um
x86 KVM: x86/MMU: Zap non-leaf SPTEs when disabling dirty logging 2022-06-07 11:28:49 -04:00
xtensa xtensa: fix a7 clobbering in coprocessor context load/store 2022-04-15 18:44:02 -07:00
.gitignore
Kconfig vmalloc: replace VM_NO_HUGE_VMAP with VM_ALLOW_HUGE_VMAP 2022-04-19 12:08:57 -07:00