[PATCH v3 0/2] KVM: arm64: Debug fixes
Alexandru Elisei
alexandru.elisei at arm.com
Wed Apr 7 15:48:55 BST 2021
v2 can be found at [1]. Patch #1 in this series is new.
Tested on an odroid-c4 with VHE. vcpu->arch.mdcr_el2 is calculated to be
0x84e66. Without this patch, reading MDCR_EL2 after the first vcpu_load() in
kvm_arch_vcpu_ioctl_run() returns 0, subsequent reads return 0xe66
(FEAT_TFF and FEAT_SPE are not implemented by the PE). With this patch, all
reads, including the first time the VCPU is run, return 0xe66.
Also tested on the odroid-c4 board with a host compiled with
CONFIG_DEBUG_PREEMPT=y by running 2 VMs in parallel, saw no errors in
dmesg.
Changes in v3:
* Patch #1 ("Documentation: KVM: Document KVM_GUESTDBG_USE_HW control flag
for arm64") is new.
* Rebased on top of v5.12-rc6.
* kvm_arm_setup_mdcr_el2() uses __this_cpu_read() to read the host's
MDCR_EL2 value and kvm_arm_vcpu_init_debug() calls it with preemption
disabled.
* Rewrote the condition for setting MDCR_EL2.TDA with the intention to make
it clearer (to be decided if that's indeed the case).
Changes in v2:
* Moved kvm_arm_vcpu_init_debug() earlier in kvm_vcpu_first_run_init() so
vcpu->arch.mdcr_el2 is calculated even if kvm_vgic_map_resources() fails.
* Added comment to kvm_arm_setup_mdcr_el2 to explain what testing
vcpu->guest_debug means.
v1 can be found at [2].
[1] https://www.spinics.net/lists/kvm-arm/msg45999.html
[2] https://www.spinics.net/lists/kvm-arm/msg42959.html
Alexandru Elisei (2):
Documentation: KVM: Document KVM_GUESTDBG_USE_HW control flag for
arm64
KVM: arm64: Initialize VCPU mdcr_el2 before loading it
Documentation/virt/kvm/api.rst | 3 +-
arch/arm64/include/asm/kvm_host.h | 1 +
arch/arm64/kvm/arm.c | 2 +
arch/arm64/kvm/debug.c | 88 +++++++++++++++++++++----------
4 files changed, 65 insertions(+), 29 deletions(-)
--
2.31.1
More information about the linux-arm-kernel
mailing list