From: alex.bennee@linaro.org (Alex Bennée)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/7] KVM Guest Debug support for arm64
Date: Tue, 25 Nov 2014 16:09:58 +0000 [thread overview]
Message-ID: <1416931805-23223-1-git-send-email-alex.bennee@linaro.org> (raw)
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
next reply other threads:[~2014-11-25 16:09 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-25 16:09 Alex Bennée [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1416931805-23223-1-git-send-email-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).