mirror-linux/arch
Yan Zhao b83ab124de KVM: x86: Add a new page-track hook to handle memslot deletion
Add a new page-track hook, track_remove_region(), that is called when a
memslot DELETE operation is about to be committed.  The "remove" hook
will be used by KVMGT and will effectively replace the existing
track_flush_slot() altogether now that KVM itself doesn't rely on the
"flush" hook either.

The "flush" hook is flawed as it's invoked before the memslot operation
is guaranteed to succeed, i.e. KVM might ultimately keep the existing
memslot without notifying external page track users, a.k.a. KVMGT.  In
practice, this can't currently happen on x86, but there are no guarantees
that won't change in the future, not to mention that "flush" does a very
poor job of describing what is happening.

Pass in the gfn+nr_pages instead of the slot itself so external users,
i.e. KVMGT, don't need to exposed to KVM internals (memslots).  This will
help set the stage for additional cleanups to the page-track APIs.

Opportunistically align the existing srcu_read_lock_held() usage so that
the new case doesn't stand out like a sore thumb (and not aligning the
new code makes bots unhappy).

Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Signed-off-by: Yan Zhao <yan.y.zhao@intel.com>
Co-developed-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20230729013535.1070024-19-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-08-31 14:07:25 -04:00
..
alpha Kbuild fixes for v6.5 (2nd) 2023-08-13 08:56:24 -07:00
arc asm-generic updates for 6.5 2023-07-06 10:06:04 -07:00
arm KVM/arm64 updates for Linux 6.6 2023-08-31 13:18:53 -04:00
arm64 Common KVM changes for 6.6: 2023-08-31 13:19:55 -04:00
csky arch/csky patches for 6.5 2023-07-01 21:12:32 -07:00
hexagon Merge branch 'expand-stack' 2023-06-28 20:35:21 -07:00
ia64 locking: remove spin_lock_prefetch 2023-08-12 09:18:47 -07:00
loongarch LoongArch: Fix hw_breakpoint_control() for watchpoints 2023-08-26 22:21:57 +08:00
m68k m68k: Fix invalid .section syntax 2023-07-24 14:50:02 +02:00
microblaze slab updates for 6.5 2023-06-29 16:34:12 -07:00
mips Common KVM changes for 6.6: 2023-08-31 13:19:55 -04:00
nios2 slab updates for 6.5 2023-06-29 16:34:12 -07:00
openrisc OpenRISC fix for 6.5 2023-07-12 16:28:53 -07:00
parisc parisc: Fix CONFIG_TLB_PTLOCK to work with lightweight spinlock checks 2023-08-14 09:54:49 +02:00
powerpc 18 hotfixes. 13 are cc:stable and the remainder pertain to post-6.4 issues 2023-08-25 11:44:43 -07:00
riscv KVM/riscv changes for 6.6 2023-08-31 13:25:55 -04:00
s390 - PV crypto passthrough enablement (Tony, Steffen, Viktor, Janosch) 2023-08-31 13:21:27 -04:00
sh arch/*/configs/*defconfig: Replace AUTOFS4_FS by AUTOFS_FS 2023-07-29 14:08:22 -07:00
sparc locking: remove spin_lock_prefetch 2023-08-12 09:18:47 -07:00
um arch/*/configs/*defconfig: Replace AUTOFS4_FS by AUTOFS_FS 2023-07-29 14:08:22 -07:00
x86 KVM: x86: Add a new page-track hook to handle memslot deletion 2023-08-31 14:07:25 -04:00
xtensa xtensa: fix unaligned and load/store configuration interaction 2023-07-10 21:41:04 -07:00
.gitignore
Kconfig - Arnd Bergmann has fixed a bunch of -Wmissing-prototypes in 2023-06-28 10:59:38 -07:00