All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
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>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	"jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	Will Deacon <Will.Deacon@arm.com>,
	open list <linux-kernel@vger.kernel.org>,
	"dahi@linux.vnet.ibm.com" <dahi@linux.vnet.ibm.com>,
	"r65777@freescale.com" <r65777@freescale.com>,
	"bp@suse.de" <bp@suse.de>
Subject: Re: [PATCH v4 03/12] KVM: arm64: guest debug, define API headers
Date: Fri, 15 May 2015 15:44:23 +0100	[thread overview]
Message-ID: <20150515144423.GA23652@leverpostej> (raw)
In-Reply-To: <1431700035-23479-4-git-send-email-alex.bennee@linaro.org>

On Fri, May 15, 2015 at 03:27:06PM +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 exception and possible faulting address
> 
> The type of debugging being used is controlled 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>
> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
> Reviewed-by: Andrew Jones <drjones@redhat.com>
> Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
> 
> ---
> v2
>    - expose hsr and pc directly to user-space
> v3
>    - s/control/controlled/ in commit message
>    - add v8 to ARM ARM comment (ARM Architecture Reference Manual)
>    - add rb tag
>    - rm pc, add far
>    - re-word comments on alignment
>    - rename KVM_ARM_NDBG_REGS -> KVM_ARM_MAX_DBG_REGS
> v4
>    - now uses common HW/SW BP define
>    - add a-b-tag
>    - use u32 for control regs
> 
> diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h
> index d268320..8796610 100644
> --- a/arch/arm64/include/uapi/asm/kvm.h
> +++ b/arch/arm64/include/uapi/asm/kvm.h
> @@ -100,10 +100,28 @@ struct kvm_sregs {
>  struct kvm_fpu {
>  };
>  
> +/*
> + * See v8 ARM ARM D7.3: Debug Registers
> + *
> + * The control registers are architecturally defined as 32 bits but are
> + * stored as 64 bit values alongside the value registers. This is done

Stale comment? They're stored as __u32 below.

It's possible that the registers could grow in future as happened in the
case of CLIDR_EL1, so it might be worth treating system registers
generally as u64 values.

Mark.

> + * to keep the copying of these values into the vcpu context simple as
> + * everything is 64 bit aligned (see DBGBCR0_EL1 onwards in kvm_asm.h).
> + *
> + * The architectural limit is 16 debug registers of each type although
> + * in practice there are usually less (see ID_AA64DFR0_EL1).
> + */
> +#define KVM_ARM_MAX_DBG_REGS 16
>  struct kvm_guest_debug_arch {
> +	__u32 dbg_bcr[KVM_ARM_MAX_DBG_REGS];
> +	__u64 dbg_bvr[KVM_ARM_MAX_DBG_REGS];
> +	__u32 dbg_wcr[KVM_ARM_MAX_DBG_REGS];
> +	__u64 dbg_wvr[KVM_ARM_MAX_DBG_REGS];
>  };
>  
>  struct kvm_debug_exit_arch {
> +	__u32 hsr;
> +	__u64 far;
>  };
>  
>  struct kvm_sync_regs {
> -- 
> 2.3.5
> 
> _______________________________________________
> kvmarm mailing list
> kvmarm@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 03/12] KVM: arm64: guest debug, define API headers
Date: Fri, 15 May 2015 15:44:23 +0100	[thread overview]
Message-ID: <20150515144423.GA23652@leverpostej> (raw)
In-Reply-To: <1431700035-23479-4-git-send-email-alex.bennee@linaro.org>

On Fri, May 15, 2015 at 03:27:06PM +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 exception and possible faulting address
> 
> The type of debugging being used is controlled 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>
> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
> Reviewed-by: Andrew Jones <drjones@redhat.com>
> Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
> 
> ---
> v2
>    - expose hsr and pc directly to user-space
> v3
>    - s/control/controlled/ in commit message
>    - add v8 to ARM ARM comment (ARM Architecture Reference Manual)
>    - add rb tag
>    - rm pc, add far
>    - re-word comments on alignment
>    - rename KVM_ARM_NDBG_REGS -> KVM_ARM_MAX_DBG_REGS
> v4
>    - now uses common HW/SW BP define
>    - add a-b-tag
>    - use u32 for control regs
> 
> diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h
> index d268320..8796610 100644
> --- a/arch/arm64/include/uapi/asm/kvm.h
> +++ b/arch/arm64/include/uapi/asm/kvm.h
> @@ -100,10 +100,28 @@ struct kvm_sregs {
>  struct kvm_fpu {
>  };
>  
> +/*
> + * See v8 ARM ARM D7.3: Debug Registers
> + *
> + * The control registers are architecturally defined as 32 bits but are
> + * stored as 64 bit values alongside the value registers. This is done

Stale comment? They're stored as __u32 below.

It's possible that the registers could grow in future as happened in the
case of CLIDR_EL1, so it might be worth treating system registers
generally as u64 values.

Mark.

> + * to keep the copying of these values into the vcpu context simple as
> + * everything is 64 bit aligned (see DBGBCR0_EL1 onwards in kvm_asm.h).
> + *
> + * The architectural limit is 16 debug registers of each type although
> + * in practice there are usually less (see ID_AA64DFR0_EL1).
> + */
> +#define KVM_ARM_MAX_DBG_REGS 16
>  struct kvm_guest_debug_arch {
> +	__u32 dbg_bcr[KVM_ARM_MAX_DBG_REGS];
> +	__u64 dbg_bvr[KVM_ARM_MAX_DBG_REGS];
> +	__u32 dbg_wcr[KVM_ARM_MAX_DBG_REGS];
> +	__u64 dbg_wvr[KVM_ARM_MAX_DBG_REGS];
>  };
>  
>  struct kvm_debug_exit_arch {
> +	__u32 hsr;
> +	__u64 far;
>  };
>  
>  struct kvm_sync_regs {
> -- 
> 2.3.5
> 
> _______________________________________________
> kvmarm mailing list
> kvmarm at lists.cs.columbia.edu
> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

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

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-15 14:27 [PATCH v4 00/12] KVM Guest Debug support for arm64 Alex Bennée
2015-05-15 14:27 ` Alex Bennée
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   ` Alex Bennée
2015-05-15 14:27   ` 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 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 15:42   ` Christian Borntraeger
2015-05-15 15:42     ` Christian Borntraeger
2015-05-15 15:42     ` Christian Borntraeger
     [not found]     ` <555613F2.9060204-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2015-05-15 17:33       ` David Hildenbrand
2015-05-15 17:33         ` David Hildenbrand
2015-05-15 17:33         ` David Hildenbrand
2015-05-15 17:33         ` David Hildenbrand
2015-05-15 17:46         ` Jan Kiszka
2015-05-15 17:46           ` Jan Kiszka
2015-05-15 15:58   ` Christian Borntraeger
2015-05-15 15:58     ` Christian Borntraeger
2015-05-15 15:58     ` Christian Borntraeger
2015-05-15 15:58     ` Christian Borntraeger
2015-05-15 15:58     ` Christian Borntraeger
2015-05-15 14:27 ` [PATCH v4 03/12] KVM: arm64: guest debug, define API headers Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:44   ` Mark Rutland [this message]
2015-05-15 14:44     ` Mark Rutland
2015-05-15 15:14     ` Alex Bennée
2015-05-15 15:14       ` Alex Bennée
2015-05-15 15:14       ` Alex Bennée
2015-05-15 15:17       ` Peter Maydell
2015-05-15 15:17         ` Peter Maydell
2015-05-15 15:17         ` Peter Maydell
2015-05-15 15:43         ` Alex Bennée
2015-05-15 15:43           ` Alex Bennée
2015-05-15 15:43           ` Alex Bennée
2015-05-15 15:43         ` Mark Rutland
2015-05-15 15:43           ` Mark Rutland
2015-05-15 15:43           ` Mark Rutland
2015-05-15 16:19           ` Alex Bennée
2015-05-15 16:19             ` Alex Bennée
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   ` Alex Bennée
2015-05-15 14:27   ` 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   ` Alex Bennée
2015-05-15 14:27   ` 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-15 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-20  9:17   ` Will Deacon
2015-05-20  9:17     ` Will Deacon
2015-05-20  9:17     ` Will Deacon
2015-05-20  9:17     ` Will Deacon
2015-05-20 12:33     ` Alex Bennée
2015-05-20 12:33       ` Alex Bennée
2015-05-20 12:33       ` Alex Bennée
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   ` Alex Bennée
2015-05-15 14:27   ` 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   ` Alex Bennée
2015-05-15 14:27   ` 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   ` Alex Bennée
2015-05-15 14:27   ` 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 14:27   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
     [not found]   ` <1431700035-23479-11-git-send-email-alex.bennee-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-15 15:23     ` Mark Rutland
2015-05-15 15:23       ` Mark Rutland
2015-05-15 15:23       ` Mark Rutland
2015-05-15 15:23       ` Mark Rutland
2015-05-15 16:16       ` Alex Bennée
2015-05-15 16:16         ` Alex Bennée
2015-05-15 16:16         ` Alex Bennée
2015-05-15 16:16         ` Alex Bennée
2015-05-15 17:01         ` Mark Rutland
2015-05-15 17:01           ` Mark Rutland
2015-05-15 17:01           ` Mark Rutland
2015-05-15 17:01           ` Mark Rutland
2015-05-15 17:09         ` Peter Maydell
2015-05-15 17:09           ` Peter Maydell
2015-05-15 17:09           ` Peter Maydell
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   ` Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:27 ` [PATCH v4 12/12] KVM: arm64: add trace points for guest_debug debug Alex Bennée
2015-05-15 14:27   ` Alex Bennée
2015-05-15 14:27   ` 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=20150515144423.GA23652@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=Catalin.Marinas@arm.com \
    --cc=Marc.Zyngier@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=agraf@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=bp@suse.de \
    --cc=christoffer.dall@linaro.org \
    --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=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.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 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.