On 7 May 2014 20:50, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > This patch series adds debug support, a key feature missing from the > KVM/arm64 port. > > The main idea is to keep track of whether the debug registers are > "dirty" (changed by the guest) or not. In this case, perform the usual > save/restore dance, for one run only. It means we only have a penalty > if a guest is actually using the debug registers. > > The huge amount of registers is properly frightening, but CPUs > actually only implement a subset of them. Also, there is a number of > registers we don't bother emulating (things having to do with external > debug and OSlock). > > This has been tested on a Cortex-A57 platform, running both 32 and > 64bit guests, on top of 3.15-rc4. This code also lives in my tree in > the kvm-arm64/debug-trap branch. > > Marc Zyngier (9): > arm64: KVM: rename pm_fake handler to trap_wi_raz > arm64: move DBG_MDSCR_* to asm/debug-monitors.h > arm64: KVM: add trap handlers for AArch64 debug registers > arm64: KVM: common infrastructure for handling AArch32 CP14/CP15 > arm64: KVM: use separate tables for AArch32 32 and 64bit traps > arm64: KVM: check ordering of all system register tables > arm64: KVM: add trap handlers for AArch32 debug registers > arm64: KVM: implement lazy world switch for debug registers > arm64: KVM: enable trapping of all debug registers > > arch/arm64/include/asm/debug-monitors.h | 19 +- > arch/arm64/include/asm/kvm_asm.h | 39 ++- > arch/arm64/include/asm/kvm_coproc.h | 3 +- > arch/arm64/include/asm/kvm_host.h | 12 +- > arch/arm64/kernel/asm-offsets.c | 1 + > arch/arm64/kernel/debug-monitors.c | 9 - > arch/arm64/kvm/handle_exit.c | 4 +- > arch/arm64/kvm/hyp.S | 457 ++++++++++++++++++++++++++++- > arch/arm64/kvm/sys_regs.c | 494 +++++++++++++++++++++++++++----- > 9 files changed, 940 insertions(+), 98 deletions(-) > > -- > 1.8.3.4 > > _______________________________________________ > kvmarm mailing list > kvmarm@xxxxxxxxxxxxxxxxxxxxx > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Hi Marc, Overall the patchset looks good to me. The debug register usage by Guest will be very rare so a lazy save/restore makes lot-of-sense here. The only concern here is that amount of time spend in world-switch will increase for Guest once Guest starts accessing debug registers. I was wondering if it is possible to detect that Guest has stopped using debug HW and we can mark debug state as clean. (or something similar) Regards, Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html