public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: "kvm\@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-arm-kernel\@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"kvmarm\@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
	"christoffer.dall\@linaro.org" <christoffer.dall@linaro.org>,
	Marc Zyngier <Marc.Zyngier@arm.com>,
	"peter.maydell\@linaro.org" <peter.maydell@linaro.org>,
	"agraf\@suse.de" <agraf@suse.de>,
	"drjones\@redhat.com" <drjones@redhat.com>,
	"pbonzini\@redhat.com" <pbonzini@redhat.com>,
	"zhichao.huang\@linaro.org" <zhichao.huang@linaro.org>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Jonathan Corbet <corbet@lwn.net>, Gleb Natapov <gleb@kernel.org>,
	"jan.kiszka\@siemens.com" <jan.kiszka@siemens.com>,
	"open list\:DOCUMENTATION" <linux-doc@vger.kernel.org>,
	Will Deacon <Will.Deacon@arm.com>,
	open list <linux-kernel@vger.kernel.org>,
	"open list\:ABI\/API" <linux-api@vger.kernel.org>,
	"dahi\@linux.vnet.ibm.com" <dahi@linux.vnet.ibm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	"r65777\@freescale.com" <r65777@freescale.com>,
	"bp\@suse.de" <bp@suse.de>, Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH v4 10/12] KVM: arm64: guest debug, HW assisted debug support
Date: Fri, 15 May 2015 17:16:26 +0100	[thread overview]
Message-ID: <87y4kpke91.fsf@linaro.org> (raw)
In-Reply-To: <20150515152346.GB23652@leverpostej>


Mark Rutland <mark.rutland@arm.com> writes:

> Hi Alex,
>
> On Fri, May 15, 2015 at 03:27:13PM +0100, Alex Bennée wrote:
>> This adds support for userspace to control the HW debug registers for
>> guest debug. In the debug ioctl we copy the IMPDEF defined number of
>> registers into a new register set called host_debug_state. There is now
>> a new vcpu parameter called debug_ptr which selects which register set
>> is to copied into the real registers when world switch occurs.
>> 
>> I've moved some helper functions into the hw_breakpoint.h header for
>> re-use.
>> 
>> As with single step we need to tweak the guest registers to enable the
>> exceptions so we need to save and restore those bits.
>> 
>> Two new capabilities have been added to the KVM_EXTENSION ioctl to allow
>> userspace to query the number of hardware break and watch points
>> available on the host hardware.
>
> There's the unfortunate possibility that these could vary across cores
> in a big.LITTLE system (though we haven't seen that thus far). The
> kernel sanity checks should currently explode if such a case is
> encountered, but I don't know what we'd do were that to happen.

I suspect we would have to disable HW assisted breakpoints or return the
lowest common denominator if we can tell which cores we shall every be
scheduled on.

>
> This gets more fun when you consider the context-aware breakpoints are
> the highest numbered. So the set of (context-aware) breakpoints might
> not intersect across all CPUs.

I didn't see a reference to that in the ARM ARM. It seemed to imply any
breakpoint could be context aware is .BT was appropriately set and
linked to the VR.  

As it happens the gdb stub interface in QEMU is fairly limited so while
I expose the full debug registers I don't think there is currently a way
to expose any of the fancy linking/context stuff to the userspace
debugger. However I did make the ABI pass full raw values in so this
could become a possibility later without having to expand the ABI.


> I'm not sure what the best thing to do is w.r.t. exposing that to
> userspace.
>
> Thanks,
> Mark.

-- 
Alex Bennée

  reply	other threads:[~2015-05-15 16:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1431700035-23479-1-git-send-email-alex.bennee@linaro.org>
2015-05-15 14:27 ` [PATCH v4 01/12] KVM: add comments for kvm_debug_exit_arch struct Alex Bennée
2015-05-15 14:27 ` [PATCH v4 02/12] KVM: define common KVM_GUESTDBG_USE_SW/HW_BP bits Alex Bennée
2015-05-15 15:58   ` Christian Borntraeger
     [not found]   ` <555613F2.9060204@de.ibm.com>
2015-05-15 17:33     ` David Hildenbrand
2015-05-15 14:27 ` [PATCH v4 03/12] KVM: arm64: guest debug, define API headers Alex Bennée
2015-05-15 14:44   ` Mark Rutland
2015-05-15 15:14     ` Alex Bennée
2015-05-15 15:17       ` Peter Maydell
2015-05-15 15:43         ` Alex Bennée
2015-05-15 15:43         ` Mark Rutland
2015-05-15 16:19           ` Alex Bennée
2015-05-15 14:27 ` [PATCH v4 04/12] KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl Alex Bennée
2015-05-15 14:27 ` [PATCH v4 05/12] KVM: arm: introduce kvm_arm_init/setup/clear_debug Alex Bennée
2015-05-15 14:27 ` [PATCH v4 06/12] KVM: arm64: guest debug, add SW break point support Alex Bennée
2015-05-20  9:17   ` Will Deacon
2015-05-20 12:33     ` Alex Bennée
2015-05-15 14:27 ` [PATCH v4 07/12] KVM: arm64: guest debug, add support for single-step Alex Bennée
2015-05-15 14:27 ` [PATCH v4 08/12] KVM: arm64: re-factor hyp.S debug register code Alex Bennée
2015-05-15 14:27 ` [PATCH v4 09/12] KVM: arm64: introduce vcpu->arch.debug_ptr Alex Bennée
2015-05-15 14:27 ` [PATCH v4 10/12] KVM: arm64: guest debug, HW assisted debug support Alex Bennée
2015-05-15 15:23   ` Mark Rutland
2015-05-15 16:16     ` Alex Bennée [this message]
2015-05-15 17:01       ` Mark Rutland
2015-05-15 17:09       ` Peter Maydell
2015-05-15 14:27 ` [PATCH v4 11/12] KVM: arm64: enable KVM_CAP_SET_GUEST_DEBUG Alex Bennée
2015-05-15 14:27 ` [PATCH v4 12/12] KVM: arm64: add trace points for guest_debug debug 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=87y4kpke91.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=Catalin.Marinas@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=Marc.Zyngier@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=agraf@suse.de \
    --cc=bp@suse.de \
    --cc=christoffer.dall@linaro.org \
    --cc=corbet@lwn.net \
    --cc=dahi@linux.vnet.ibm.com \
    --cc=drjones@redhat.com \
    --cc=gleb@kernel.org \
    --cc=jan.kiszka@siemens.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterz@infradead.org \
    --cc=r65777@freescale.com \
    --cc=zhichao.huang@linaro.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