linux/arch/x86
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
..
boot memcpy updates for v5.18-rc1 2022-03-26 12:19:04 -07:00
coco
configs x86/config: Make the x86 defconfigs a bit more usable 2022-03-27 20:58:35 +02:00
crypto This push fixes the following issues: 2022-03-31 11:17:39 -07:00
entry x86,objtool: Explicitly mark idtentry_body()s tail REACHABLE 2022-04-19 21:58:48 +02:00
events perf/x86/cstate: Add SAPPHIRERAPIDS_X CPU support 2022-04-19 21:15:42 +02:00
hyperv
ia32
include x86: drop bogus "cc" clobber from __try_cmpxchg_user_asm() 2022-06-07 11:28:49 -04:00
kernel x86, kvm: use correct GFP flags for preemption disabled 2022-05-25 05:13:40 -04:00
kvm KVM: x86/MMU: Zap non-leaf SPTEs when disabling dirty logging 2022-06-07 11:28:49 -04:00
lib - A fix to disable PCI/MSI[-X] masking for XEN_HVM guests as that is 2022-05-01 10:03:36 -07:00
math-emu
mm x86/mm: Fix marking of unused sub-pmd ranges 2022-05-13 12:41:21 +02:00
net x86,bpf: Avoid IBT objtool warning 2022-04-07 11:27:02 +02:00
pci x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests 2022-04-29 14:37:39 +02:00
platform x86,xen,objtool: Add UNWIND hint 2022-04-19 21:58:47 +02:00
power x86/cpu: Load microcode during restore_processor_state() 2022-04-19 19:37:05 +02:00
purgatory
ras
realmode
tools
um Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2022-04-01 19:57:03 -07:00
video
xen x86/xen: Add ANNOTATE_NOENDBR to startup_xen() 2022-04-19 21:58:49 +02:00
.gitignore
Kbuild
Kconfig x86/Kconfig: fix the spelling of 'becoming' in X86_KERNEL_IBT config 2022-04-19 21:58:50 +02:00
Kconfig.assembler
Kconfig.cpu
Kconfig.debug
Makefile x86: Remove toolchain check for X32 ABI capability 2022-03-15 10:32:48 +01:00
Makefile.um
Makefile_32.cpu