Re: [PATCH 0/9] arm64: KVM: debug infrastructure support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux