linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] KVM Guest Debug support for arm64
@ 2014-11-25 16:09 Alex Bennée
  2014-11-25 16:09 ` [PATCH 1/7] KVM: add commentary for kvm_debug_exit_arch struct Alex Bennée
                   ` (6 more replies)
  0 siblings, 7 replies; 47+ messages in thread
From: Alex Bennée @ 2014-11-25 16:09 UTC (permalink / raw)
  To: linux-arm-kernel

The following patches implement support for debugging of KVM guests on
arm64 hardware. It supports SW and HW break points as well as
single-step functionality. I've created a branch of QEMU with the
userspace support to test this at:

https://github.com/stsquad/qemu/tree/kvm/guest-debug-kvm-submission

I've done some initial manual testing and everything seems fine but I
have yet to write my test suite. One area which has not yet been
tested is debug inside the guest while being debugged. The current
implementation effectively suspends the guests ability to use single
step and HW assisted debugging while KVM is debugging it. However the
door is open to userspace trying to accommodate this mode as the
guest's view of debugging registers is separate from actual values
when guest debugging is in operation.

The first 3 patches simply lay the groundwork for the later
functionality. Each patch then introduces each bit of functionality
except the re-factor patch which I split out from the HW assisted
debug patch to aid review.

In reference to the recent discussion about exposing the number of
debug registers to userspace I ended up using the KVM_EXTENSION ioctl
which helpfully allows to return of any positive number for success.
It seemed by far the simplest API to use from both the kernel and
userspace point of view.

The patches all pass checkpatch apart from the changes to
asm-offsets.c which complain about leading spaces and long lines. I
left them as is to fit in with the formatting of the rest of the file.

Alex Benn?e (7):
  KVM: add commentary for kvm_debug_exit_arch struct
  KVM: arm: guest debug, define API headers
  KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl
  KVM: arm64: guest debug, add SW break point support
  KVM: arm64: guest debug, add support for single-step
  KVM: arm64: re-factor hyp.S debug register code
  KVM: arm64: guest debug, HW assisted debug support

 Documentation/virtual/kvm/api.txt      |  11 +-
 arch/arm/kvm/arm.c                     |  89 +++++++++-
 arch/arm64/include/asm/hw_breakpoint.h |  12 ++
 arch/arm64/include/asm/kvm_host.h      |   4 +-
 arch/arm64/include/uapi/asm/kvm.h      |  28 ++++
 arch/arm64/kernel/asm-offsets.c        |   6 +
 arch/arm64/kernel/hw_breakpoint.c      |  12 --
 arch/arm64/kvm/handle_exit.c           |  80 +++++++++
 arch/arm64/kvm/hyp.S                   | 292 ++++++++++++++-------------------
 arch/arm64/kvm/reset.c                 |   6 +
 include/uapi/linux/kvm.h               |  21 ++-
 11 files changed, 371 insertions(+), 190 deletions(-)

-- 
2.1.3

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2014-12-02 13:23 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-25 16:09 [PATCH 0/7] KVM Guest Debug support for arm64 Alex Bennée
2014-11-25 16:09 ` [PATCH 1/7] KVM: add commentary for kvm_debug_exit_arch struct Alex Bennée
2014-11-26 14:20   ` Andrew Jones
2014-11-25 16:10 ` [PATCH 2/7] KVM: arm: guest debug, define API headers Alex Bennée
2014-11-25 16:19   ` Peter Maydell
2014-11-26 15:04     ` Alex Bennée
2014-11-29 16:20       ` Christoffer Dall
2014-12-01 11:30         ` Alex Bennée
2014-11-25 17:05   ` Paolo Bonzini
2014-11-25 17:13     ` Peter Maydell
2014-11-25 17:22       ` Paolo Bonzini
2014-11-26 13:13         ` Alex Bennée
2014-11-26 13:14           ` Paolo Bonzini
2014-11-26 14:31   ` Andrew Jones
2014-11-26 14:58     ` Alex Bennée
2014-11-26 16:46       ` Paolo Bonzini
2014-11-26 17:47         ` Andrew Jones
2014-11-29 16:20   ` Christoffer Dall
2014-11-25 16:10 ` [PATCH 3/7] KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl Alex Bennée
2014-11-26 14:38   ` Andrew Jones
2014-11-26 15:03     ` Alex Bennée
2014-11-26 16:46       ` Paolo Bonzini
2014-11-29 16:21   ` Christoffer Dall
2014-11-25 16:10 ` [PATCH 4/7] KVM: arm64: guest debug, add SW break point support Alex Bennée
2014-11-26 16:07   ` Andrew Jones
2014-11-26 17:14     ` Peter Maydell
2014-11-29 16:21     ` Christoffer Dall
2014-11-29 16:21   ` Christoffer Dall
2014-12-01 11:33     ` Alex Bennée
2014-11-25 16:10 ` [PATCH 5/7] KVM: arm64: guest debug, add support for single-step Alex Bennée
2014-11-26 16:40   ` Andrew Jones
2014-11-26 18:00     ` Alex Bennée
2014-11-26 19:27   ` Peter Maydell
2014-11-30 10:10     ` Christoffer Dall
2014-11-30 10:20       ` Peter Maydell
2014-11-30 10:21   ` Christoffer Dall
2014-12-01 11:50     ` Alex Bennée
2014-12-02 13:17       ` Christoffer Dall
2014-11-25 16:10 ` [PATCH 6/7] KVM: arm64: re-factor hyp.S debug register code Alex Bennée
2014-11-26 16:49   ` Andrew Jones
2014-11-30 10:25   ` Christoffer Dall
2014-12-01 11:52     ` Alex Bennée
2014-12-02 13:23       ` Christoffer Dall
2014-11-25 16:10 ` [PATCH 7/7] KVM: arm64: guest debug, HW assisted debug support Alex Bennée
2014-11-26 17:34   ` Andrew Jones
2014-11-30 10:34   ` Christoffer Dall
2014-12-01 11:54     ` Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).