From: Christoffer Dall <christoffer.dall@linaro.org> To: "Alex Bennée" <alex.bennee@linaro.org> Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org, jan.kiszka@siemens.com, dahi@linux.vnet.ibm.com, r65777@freescale.com, bp@suse.de, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, open list <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v2 03/10] KVM: arm: guest debug, define API headers Date: Mon, 13 Apr 2015 14:08:13 +0200 [thread overview] Message-ID: <20150413120813.GN6186@cbox> (raw) In-Reply-To: <1427814488-28467-4-git-send-email-alex.bennee@linaro.org> On Tue, Mar 31, 2015 at 04:08:01PM +0100, Alex Bennée wrote: > This commit defines the API headers for guest debugging. There are two > architecture specific debug structures: > > - kvm_guest_debug_arch, allows us to pass in HW debug registers > - kvm_debug_exit_arch, signals the exact debug exit and pc > > The type of debugging being used is control by the architecture specific > control bits of the kvm_guest_debug->control flags in the ioctl > structure. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > --- > v2 > - expose hsr and pc directly to user-space > > diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h > index 3ef77a4..6ee70a0 100644 > --- a/arch/arm64/include/uapi/asm/kvm.h > +++ b/arch/arm64/include/uapi/asm/kvm.h > @@ -100,10 +100,24 @@ struct kvm_sregs { > struct kvm_fpu { > }; > > +/* > + * See ARM ARM D7.3: Debug Registers see the ARM ARM for ?? > + * > + * The control registers are architecturally defined as 32 bits but are > + * stored as 64 bit values along side the value registers and aligned do you mean alongside? > + * with the rest 64 bit registers in the normal CPU context. rest of the 64 bit > + */ why do we store them as 64 bit values? There's nothing prevented us from defining them as __u32 is there? Is this to make the ONE_REG interface accessers more convenient? > +#define KVM_ARM_NDBG_REGS 16 nit: is NDBG short for something I don't know about or is it the number of debug registers we are noting here, in which case I think KVM_ARM_NUM_DBG_REGS is more clear. > struct kvm_guest_debug_arch { > + __u64 dbg_bcr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_bvr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_wcr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_wvr[KVM_ARM_NDBG_REGS]; > }; > > struct kvm_debug_exit_arch { > + __u64 pc; > + __u32 hsr; > }; > > struct kvm_sync_regs { > @@ -207,4 +221,11 @@ struct kvm_arch_memory_slot { > > #endif > > +/* > + * Architecture related debug defines - upper 16 bits of > + * kvm_guest_debug->control > + */ > +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP > +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP > + > #endif /* __ARM_KVM_H__ */ > -- > 2.3.4 > Thanks, -Christoffer
WARNING: multiple messages have this Message-ID (diff)
From: christoffer.dall@linaro.org (Christoffer Dall) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 03/10] KVM: arm: guest debug, define API headers Date: Mon, 13 Apr 2015 14:08:13 +0200 [thread overview] Message-ID: <20150413120813.GN6186@cbox> (raw) In-Reply-To: <1427814488-28467-4-git-send-email-alex.bennee@linaro.org> On Tue, Mar 31, 2015 at 04:08:01PM +0100, Alex Benn?e wrote: > This commit defines the API headers for guest debugging. There are two > architecture specific debug structures: > > - kvm_guest_debug_arch, allows us to pass in HW debug registers > - kvm_debug_exit_arch, signals the exact debug exit and pc > > The type of debugging being used is control by the architecture specific > control bits of the kvm_guest_debug->control flags in the ioctl > structure. > > Signed-off-by: Alex Benn?e <alex.bennee@linaro.org> > > --- > v2 > - expose hsr and pc directly to user-space > > diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h > index 3ef77a4..6ee70a0 100644 > --- a/arch/arm64/include/uapi/asm/kvm.h > +++ b/arch/arm64/include/uapi/asm/kvm.h > @@ -100,10 +100,24 @@ struct kvm_sregs { > struct kvm_fpu { > }; > > +/* > + * See ARM ARM D7.3: Debug Registers see the ARM ARM for ?? > + * > + * The control registers are architecturally defined as 32 bits but are > + * stored as 64 bit values along side the value registers and aligned do you mean alongside? > + * with the rest 64 bit registers in the normal CPU context. rest of the 64 bit > + */ why do we store them as 64 bit values? There's nothing prevented us from defining them as __u32 is there? Is this to make the ONE_REG interface accessers more convenient? > +#define KVM_ARM_NDBG_REGS 16 nit: is NDBG short for something I don't know about or is it the number of debug registers we are noting here, in which case I think KVM_ARM_NUM_DBG_REGS is more clear. > struct kvm_guest_debug_arch { > + __u64 dbg_bcr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_bvr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_wcr[KVM_ARM_NDBG_REGS]; > + __u64 dbg_wvr[KVM_ARM_NDBG_REGS]; > }; > > struct kvm_debug_exit_arch { > + __u64 pc; > + __u32 hsr; > }; > > struct kvm_sync_regs { > @@ -207,4 +221,11 @@ struct kvm_arch_memory_slot { > > #endif > > +/* > + * Architecture related debug defines - upper 16 bits of > + * kvm_guest_debug->control > + */ > +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP > +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP > + > #endif /* __ARM_KVM_H__ */ > -- > 2.3.4 > Thanks, -Christoffer
next prev parent reply other threads:[~2015-04-13 12:08 UTC|newest] Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-31 15:07 [PATCH v2 00/10] KVM Guest Debug support for arm64 Alex Bennée 2015-03-31 15:07 ` Alex Bennée 2015-03-31 15:07 ` [PATCH v2 01/10] KVM: add commentary for kvm_debug_exit_arch struct Alex Bennée 2015-03-31 15:07 ` Alex Bennée 2015-03-31 15:07 ` Alex Bennée 2015-04-01 15:38 ` David Hildenbrand 2015-04-01 15:38 ` David Hildenbrand 2015-04-01 15:38 ` David Hildenbrand 2015-04-01 15:38 ` David Hildenbrand 2015-04-10 12:58 ` Andrew Jones 2015-04-10 12:58 ` Andrew Jones 2015-04-13 10:57 ` Christoffer Dall 2015-04-13 10:57 ` Christoffer Dall 2015-04-13 10:57 ` Christoffer Dall 2015-03-31 15:08 ` [PATCH v2 02/10] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-10 12:59 ` Andrew Jones 2015-04-10 12:59 ` Andrew Jones 2015-04-10 12:59 ` Andrew Jones 2015-04-10 12:59 ` Andrew Jones 2015-04-13 11:55 ` Christoffer Dall 2015-04-13 11:55 ` Christoffer Dall 2015-04-13 11:55 ` Christoffer Dall 2015-04-13 11:55 ` Christoffer Dall 2015-04-13 14:51 ` Alex Bennée 2015-04-13 14:51 ` Alex Bennée 2015-04-13 14:51 ` Alex Bennée 2015-04-13 14:51 ` Alex Bennée 2015-04-13 15:07 ` Andrew Jones 2015-04-13 15:07 ` Andrew Jones 2015-04-13 15:07 ` Andrew Jones 2015-04-13 15:07 ` Andrew Jones 2015-04-14 8:24 ` Christoffer Dall 2015-04-14 8:24 ` Christoffer Dall 2015-04-14 8:24 ` Christoffer Dall 2015-04-14 8:24 ` Christoffer Dall 2015-04-14 8:24 ` Christoffer Dall 2015-03-31 15:08 ` [PATCH v2 03/10] KVM: arm: guest debug, define API headers Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-01 15:46 ` David Hildenbrand 2015-04-01 15:46 ` David Hildenbrand 2015-04-01 15:46 ` David Hildenbrand 2015-04-01 16:01 ` Alex Bennée 2015-04-01 16:01 ` Alex Bennée 2015-04-01 16:05 ` David Hildenbrand 2015-04-01 16:05 ` David Hildenbrand 2015-04-01 16:09 ` Peter Maydell 2015-04-01 16:09 ` Peter Maydell 2015-04-10 13:05 ` Andrew Jones 2015-04-10 13:05 ` Andrew Jones 2015-04-10 13:05 ` Andrew Jones 2015-04-13 12:08 ` Christoffer Dall [this message] 2015-04-13 12:08 ` Christoffer Dall 2015-04-23 9:54 ` Alex Bennée 2015-04-23 9:54 ` Alex Bennée 2015-04-23 9:54 ` Alex Bennée 2015-03-31 15:08 ` [PATCH v2 04/10] KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-01 15:55 ` David Hildenbrand 2015-04-01 15:55 ` David Hildenbrand 2015-04-01 15:55 ` David Hildenbrand 2015-04-09 12:28 ` Andrew Jones 2015-04-09 12:28 ` Andrew Jones 2015-04-09 12:28 ` Andrew Jones 2015-04-09 14:19 ` Alex Bennée 2015-04-09 14:19 ` Alex Bennée 2015-04-09 14:19 ` Alex Bennée 2015-04-13 12:12 ` Christoffer Dall 2015-04-13 12:12 ` Christoffer Dall 2015-04-13 12:12 ` Christoffer Dall 2015-04-14 6:31 ` David Hildenbrand 2015-04-14 6:31 ` David Hildenbrand 2015-04-14 6:31 ` David Hildenbrand 2015-04-14 8:03 ` Alex Bennée 2015-04-14 8:03 ` Alex Bennée 2015-04-14 8:03 ` Alex Bennée 2015-03-31 15:08 ` [PATCH v2 05/10] KVM: arm: introduce kvm_arch_setup/clear_debug() Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-01 16:28 ` David Hildenbrand 2015-04-01 16:28 ` David Hildenbrand 2015-04-01 16:28 ` David Hildenbrand 2015-04-09 12:56 ` Andrew Jones 2015-04-09 12:56 ` Andrew Jones 2015-04-09 12:56 ` Andrew Jones 2015-04-09 14:18 ` Alex Bennée 2015-04-09 14:18 ` Alex Bennée 2015-04-09 12:55 ` Andrew Jones 2015-04-09 12:55 ` Andrew Jones 2015-04-09 12:55 ` Andrew Jones 2015-04-13 14:36 ` Christoffer Dall 2015-04-13 14:36 ` Christoffer Dall 2015-04-13 14:48 ` Christoffer Dall 2015-04-13 14:48 ` Christoffer Dall 2015-04-13 14:48 ` Christoffer Dall 2015-04-13 15:29 ` Alex Bennée 2015-04-13 15:29 ` Alex Bennée 2015-04-13 15:29 ` Alex Bennée 2015-03-31 15:08 ` [PATCH v2 06/10] KVM: arm64: guest debug, add SW break point support Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-02 12:52 ` David Hildenbrand 2015-04-02 12:52 ` David Hildenbrand 2015-04-02 12:52 ` David Hildenbrand 2015-04-02 14:06 ` Alex Bennée 2015-04-02 14:06 ` Alex Bennée 2015-04-02 14:06 ` Alex Bennée 2015-04-10 13:09 ` Andrew Jones 2015-04-10 13:09 ` Andrew Jones 2015-04-10 13:09 ` Andrew Jones 2015-04-14 8:25 ` Christoffer Dall 2015-04-14 8:25 ` Christoffer Dall 2015-04-23 14:26 ` Alex Bennée 2015-04-23 14:26 ` Alex Bennée 2015-04-23 14:26 ` Alex Bennée 2015-04-27 20:04 ` Christoffer Dall 2015-04-27 20:04 ` Christoffer Dall 2015-04-27 21:57 ` Peter Maydell 2015-04-27 21:57 ` Peter Maydell 2015-04-28 8:42 ` Alex Bennée 2015-04-28 8:42 ` Alex Bennée 2015-04-28 8:42 ` Alex Bennée 2015-04-28 9:34 ` Peter Maydell 2015-04-28 9:34 ` Peter Maydell 2015-04-28 12:56 ` Christoffer Dall 2015-04-28 12:56 ` Christoffer Dall 2015-04-28 14:37 ` Alex Bennée 2015-04-28 14:37 ` Alex Bennée 2015-04-28 14:37 ` Alex Bennée 2015-04-29 8:10 ` Christoffer Dall 2015-04-29 8:10 ` Christoffer Dall 2015-04-29 9:18 ` Alex Bennée 2015-04-29 9:18 ` Alex Bennée 2015-04-29 9:18 ` Alex Bennée 2015-04-29 10:38 ` Christoffer Dall 2015-04-29 10:38 ` Christoffer Dall 2015-04-29 15:08 ` Alex Bennée 2015-04-29 15:08 ` Alex Bennée 2015-04-29 15:08 ` Alex Bennée 2015-04-29 19:20 ` Christoffer Dall 2015-04-29 19:20 ` Christoffer Dall 2015-04-21 14:42 ` Zhichao Huang 2015-04-22 9:46 ` Alex Bennée 2015-04-22 9:46 ` Alex Bennée 2015-04-22 9:46 ` Alex Bennée 2015-03-31 15:08 ` [PATCH v2 07/10] KVM: arm64: guest debug, add support for single-step Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-09 13:24 ` Andrew Jones 2015-04-09 13:24 ` Andrew Jones 2015-04-09 14:16 ` Alex Bennée 2015-04-09 14:16 ` Alex Bennée 2015-04-09 14:16 ` Alex Bennée 2015-04-14 8:27 ` Christoffer Dall 2015-04-14 8:27 ` Christoffer Dall 2015-04-14 8:27 ` Christoffer Dall 2015-03-31 15:08 ` [PATCH v2 08/10] KVM: arm64: guest debug, HW assisted debug support Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-10 12:25 ` Andrew Jones 2015-04-10 12:25 ` Andrew Jones 2015-04-10 12:25 ` Andrew Jones 2015-04-13 8:00 ` Alex Bennée 2015-04-13 8:00 ` Alex Bennée 2015-04-13 8:00 ` Alex Bennée 2015-04-14 10:23 ` Christoffer Dall 2015-04-14 10:23 ` Christoffer Dall 2015-04-14 10:17 ` Christoffer Dall 2015-04-14 10:17 ` Christoffer Dall 2015-04-14 10:17 ` Christoffer Dall 2015-03-31 15:08 ` [PATCH v2 09/10] KVM: arm64: trap nested debug register access Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-10 12:38 ` Andrew Jones 2015-04-10 12:38 ` Andrew Jones 2015-04-10 12:38 ` Andrew Jones 2015-04-13 7:59 ` Alex Bennée 2015-04-13 7:59 ` Alex Bennée 2015-04-13 7:59 ` Alex Bennée 2015-04-14 10:27 ` Christoffer Dall 2015-04-14 10:27 ` Christoffer Dall 2015-04-14 10:27 ` Christoffer Dall 2015-04-14 10:30 ` Christoffer Dall 2015-04-14 10:30 ` Christoffer Dall 2015-04-14 10:30 ` Christoffer Dall 2015-03-31 15:08 ` [PATCH v2 10/10] KVM: arm64: add trace points for guest_debug debug Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-03-31 15:08 ` Alex Bennée 2015-04-10 12:54 ` Andrew Jones 2015-04-10 12:54 ` Andrew Jones 2015-04-13 7:57 ` Alex Bennée 2015-04-13 7:57 ` Alex Bennée 2015-04-14 10:32 ` Christoffer Dall 2015-04-14 10:32 ` Christoffer Dall 2015-04-14 10:32 ` Christoffer Dall
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=20150413120813.GN6186@cbox \ --to=christoffer.dall@linaro.org \ --cc=agraf@suse.de \ --cc=alex.bennee@linaro.org \ --cc=bp@suse.de \ --cc=catalin.marinas@arm.com \ --cc=dahi@linux.vnet.ibm.com \ --cc=drjones@redhat.com \ --cc=jan.kiszka@siemens.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=r65777@freescale.com \ --cc=will.deacon@arm.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.