qemu/accel/kvm
Paolo Bonzini 5c3131c392 KVM: track whether guest state is encrypted
So far, KVM has allowed KVM_GET/SET_* ioctls to execute even if the
guest state is encrypted, in which case they do nothing.  For the new
API using VM types, instead, the ioctls will fail which is a safer and
more robust approach.

The new API will be the only one available for SEV-SNP and TDX, but it
is also usable for SEV and SEV-ES.  In preparation for that, require
architecture-specific KVM code to communicate the point at which guest
state is protected (which must be after kvm_cpu_synchronize_post_init(),
though that might change in the future in order to suppor migration).
From that point, skip reading registers so that cpu->vcpu_dirty is
never true: if it ever becomes true, kvm_arch_put_registers() will
fail miserably.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-04-23 17:35:25 +02:00
..
kvm-accel-ops.c kvm: use configs/ definition to conditionalize debug support 2024-04-18 11:17:27 +02:00
kvm-all.c KVM: track whether guest state is encrypted 2024-04-23 17:35:25 +02:00
kvm-cpus.h gdbstub: Use vaddr type for generic insert/remove_breakpoint() API 2023-02-27 22:29:01 +01:00
meson.build target/i386/kvm: Restrict SEV stubs to x86 architecture 2021-10-13 10:47:49 +02:00
trace-events accel/kvm: Turn DPRINTF macro use into tracepoints 2023-12-23 19:39:35 +03:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00