linux/arch/arm64/kvm
Alex Bennée 4bd611ca60 KVM: arm64: guest debug, add SW break point support
This adds support for SW breakpoints inserted by userspace.

We do this by trapping all guest software debug exceptions to the
hypervisor (MDCR_EL2.TDE). The exit handler sets an exit reason of
KVM_EXIT_DEBUG with the kvm_debug_exit_arch structure holding the
exception syndrome information.

It will be up to userspace to extract the PC (via GET_ONE_REG) and
determine if the debug event was for a breakpoint it inserted. If not
userspace will need to re-inject the correct exception restart the
hypervisor to deliver the debug exception to the guest.

Any other guest software debug exception (e.g. single step or HW
assisted breakpoints) will cause an error and the VM to be killed. This
is addressed by later patches which add support for the other debug
types.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-07-21 12:47:08 +01:00
..
debug.c KVM: arm64: guest debug, add SW break point support 2015-07-21 12:47:08 +01:00
emulate.c arm64: kvm: move to ESR_ELx macros 2015-01-15 12:24:25 +00:00
guest.c KVM: arm64: guest debug, add SW break point support 2015-07-21 12:47:08 +01:00
handle_exit.c KVM: arm64: guest debug, add SW break point support 2015-07-21 12:47:08 +01:00
hyp-init.S arm64: KVM: use ID map with increased VA range if required 2015-03-23 11:35:29 +00:00
hyp.S KVM: arm: introduce kvm_arm_init/setup/clear_debug 2015-07-21 12:47:08 +01:00
inject_fault.c arm64: kvm: move to ESR_ELx macros 2015-01-15 12:24:25 +00:00
Kconfig KVM: arm/arm64: Enable the KVM-VFIO device 2015-06-17 09:46:29 +01:00
Makefile KVM: arm: introduce kvm_arm_init/setup/clear_debug 2015-07-21 12:47:08 +01:00
regmap.c arm64: KVM: 32bit GP register access 2013-06-12 16:42:14 +01:00
reset.c arm64: KVM: Fix HCR setting for 32bit guests 2015-01-12 11:15:30 +01:00
sys_regs_generic_v8.c arm64: KVM: Enable minimalistic support for Cortex-A53 2014-05-25 20:05:30 +02:00
sys_regs.c Fairly small update, but there are some interesting new features. 2015-02-13 09:55:09 -08:00
sys_regs.h arm64: KVM: allows discrimination of AArch32 sysreg access 2014-03-03 01:15:21 +00:00
trace.h arm/arm64: KVM: add tracing support for arm64 exit handler 2015-01-15 12:43:30 +01:00
vgic-v2-switch.S arm/arm64: KVM: vgic: Do not save GICH_HCR / ICH_HCR_EL2 2015-06-17 09:59:55 +01:00
vgic-v3-switch.S arm/arm64: KVM: vgic: Do not save GICH_HCR / ICH_HCR_EL2 2015-06-17 09:59:55 +01:00