Kernel KVM-PPC virtualization development
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: Bharat Bhushan <r65777@freescale.com>
Cc: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, agraf@suse.de,
	Bharat Bhushan <Bharat.Bhushan@freescale.com>
Subject: Re: [PATCH 6/6] KVM: booke/bookehv: Add debug stub support
Date: Wed, 05 Sep 2012 23:23:04 +0000	[thread overview]
Message-ID: <5047DED8.5030202@freescale.com> (raw)
In-Reply-To: <1345557120-16197-7-git-send-email-Bharat.Bhushan@freescale.com>

On 08/21/2012 08:52 AM, Bharat Bhushan wrote:
> This patch adds the debug stub support on booke/bookehv.
> Now QEMU debug stub can use hw breakpoint, watchpoint and
> software breakpoint to debug guest.
> 
> Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
> ---
>  arch/powerpc/include/asm/kvm.h        |   29 ++++++-
>  arch/powerpc/include/asm/kvm_host.h   |    5 +
>  arch/powerpc/kernel/asm-offsets.c     |   26 ++++++
>  arch/powerpc/kvm/booke.c              |  144 +++++++++++++++++++++++++++++----
>  arch/powerpc/kvm/booke_interrupts.S   |  110 +++++++++++++++++++++++++
>  arch/powerpc/kvm/bookehv_interrupts.S |  141 +++++++++++++++++++++++++++++++-
>  arch/powerpc/kvm/e500mc.c             |    3 +-
>  7 files changed, 435 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h
> index 61b197e..53479ea 100644
> --- a/arch/powerpc/include/asm/kvm.h
> +++ b/arch/powerpc/include/asm/kvm.h
> @@ -25,6 +25,7 @@
>  /* Select powerpc specific features in <linux/kvm.h> */
>  #define __KVM_HAVE_SPAPR_TCE
>  #define __KVM_HAVE_PPC_SMT
> +#define __KVM_HAVE_GUEST_DEBUG
>  
>  struct kvm_regs {
>  	__u64 pc;
> @@ -264,7 +265,31 @@ struct kvm_fpu {
>  	__u64 fpr[32];
>  };
>  
> +
> +/*
> + * Defines for h/w breakpoint, watchpoint (read, write or both) and
> + * software breakpoint.
> + * These are used as "type" in KVM_SET_GUEST_DEBUG ioctl and "status"
> + * for KVM_DEBUG_EXIT.
> + */
> +#define KVMPPC_DEBUG_NONE		0x0
> +#define KVMPPC_DEBUG_BREAKPOINT		(1UL << 1)
> +#define KVMPPC_DEBUG_WATCH_WRITE	(1UL << 2)
> +#define KVMPPC_DEBUG_WATCH_READ		(1UL << 3)
>  struct kvm_debug_exit_arch {

That says "arch", but it's not in an arch-specific file.

> +	__u64 pc;
> +	/*
> +	 * exception -> returns the exception number. If the KVM_DEBUG_EXIT
> +	 * exit is not handled (say not h/w breakpoint or software breakpoint
> +	 * set for this address) by qemu then it is supposed to inject this
> +	 * exception to guest.
> +	 */
> +	__u32 exception;
> +	/*
> +	 * exiting to userspace because of h/w breakpoint, watchpoint
> +	 * (read, write or both) and software breakpoint.
> +	 */
> +	__u32 status;
>  };

What does "exception number" mean in a generic API?

What values can go in "status"?

> +	addi	r7, r4, VCPU_HOST_DBG
> +	mfspr	r9, SPRN_DBCR0
> +	lwz	r8, KVMPPC_DBG_DBCR0(r7)
> +	andis.	r9, r9, DBCR0_AC_BITS@h
> +	beq	skip_load_host_debug
> +	li	r9, 0
> +	mtspr	SPRN_DBCR0, r9		/* disable all debug event */
> +	lwz	r9, KVMPPC_DBG_DBCR1(r7)
> +	mtspr	SPRN_DBCR1, r9
> +	lwz	r9, KVMPPC_DBG_DBCR2(r7)
> +	mtspr	SPRN_DBCR2, r9
> +	lwz	r9, KVMPPC_DBG_IAC1+4(r7)
> +	mtspr	SPRN_IAC1, r9
> +	lwz	r9, KVMPPC_DBG_IAC2+4(r7)
> +	mtspr	SPRN_IAC2, r9
> +#if CONFIG_PPC_ADV_DEBUG_IACS > 2
> +	lwz	r9, KVMPPC_DBG_IAC3+4(r7)
> +	mtspr	SPRN_IAC3, r9
> +	lwz	r9, KVMPPC_DBG_IAC4+4(r7)
> +	mtspr	SPRN_IAC4, r9
> +#endif

What if CONFIG_PPC_ADV_DEBUG_REGS isn't set?

-Scott



  reply	other threads:[~2012-09-05 23:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-21 13:55 [PATCH 0/6] KVM: BOOKE/BOOKEHV : Added debug stub support Bharat Bhushan
2012-08-21 13:54 ` [PATCH 1/6] KVM: PPC: booke: use vcpu reference from thread_struct Bharat Bhushan
2012-09-24 16:27   ` Alexander Graf
2012-10-04  6:50     ` Bhushan Bharat-R65777
2012-08-21 13:55 ` [PATCH 5/6] booke: Added DBCR4 SPR number Bharat Bhushan
2012-09-05 23:24   ` Scott Wood
2012-08-21 13:55 ` [PATCH 4/6] KVM: PPC: debug stub interface parameter defined Bharat Bhushan
2012-09-24 15:38   ` Alexander Graf
2012-10-04  7:14     ` Bhushan Bharat-R65777
2012-12-17 16:56       ` Alexander Graf
2012-10-04  7:37     ` Bhushan Bharat-R65777
2012-08-21 13:55 ` [PATCH 6/6] KVM: booke/bookehv: Add debug stub support Bharat Bhushan
2012-09-05 23:23   ` Scott Wood [this message]
2012-09-05 23:27     ` Scott Wood
2012-09-06 14:56       ` Bhushan Bharat-R65777
2012-09-06 22:56         ` Scott Wood
2012-09-24 14:46           ` Alexander Graf
2012-09-25 10:38             ` Jan Kiszka
2012-09-25 10:47               ` Alexander Graf
2012-09-25 10:56                 ` Jan Kiszka
2012-09-25 10:58                   ` Alexander Graf
2012-09-25 11:06                     ` Jan Kiszka
2012-09-25 11:10                       ` Alexander Graf
2012-09-24 16:20   ` Alexander Graf
2012-10-04 11:06     ` Bhushan Bharat-R65777
2012-10-04 11:25       ` Alexander Graf
2012-10-04 14:22         ` Bhushan Bharat-R65777
2012-10-04 14:41           ` Alexander Graf
2012-10-04 15:19             ` Bhushan Bharat-R65777
2012-10-04 15:40               ` Alexander Graf
2012-08-21 13:55 ` [PATCH 3/6] KVM: PPC: booke: Added debug handler Bharat Bhushan
2012-08-21 13:55 ` [PATCH 2/6] KVM: PPC: booke: Allow multiple exception types Bharat Bhushan

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=5047DED8.5030202@freescale.com \
    --to=scottwood@freescale.com \
    --cc=Bharat.Bhushan@freescale.com \
    --cc=agraf@suse.de \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=r65777@freescale.com \
    /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