linux/arch/arm64/kvm
Alex Bennée 337b99bf7e KVM: arm64: guest debug, add support for single-step
This adds support for single-stepping the guest. To do this we need to
manipulate the guests PSTATE.SS and MDSCR_EL1.SS bits to trigger
stepping. We take care to preserve MDSCR_EL1 and trap access to it to
ensure we don't affect the apparent state of the guest.

As we have to enable trapping of all software debug exceptions we
suppress the ability of the guest to single-step itself. If we didn't we
would have to deal with the exception arriving while the guest was in
kernelspace when the guest is expecting to single-step userspace. This
is something we don't want to unwind in the kernel. Once the host is no
longer debugging the guest its ability to single-step userspace is
restored.

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 support for single-step 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 support for single-step 2015-07-21 12:47:08 +01:00
handle_exit.c KVM: arm64: guest debug, add support for single-step 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