All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: Jan Kiszka <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>,
	kvm-devel <kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	kvm-ppc <kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] KVM: PowerPC: Disarm old guest debug interface
Date: Sun, 04 Jan 2009 10:54:11 +0000	[thread overview]
Message-ID: <49609553.6060308@redhat.com> (raw)
In-Reply-To: <1231012661.3501.4.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

Hollis Blanchard wrote:
>
> kvm: ppc: remove debug support broken by KVM debug rewrite
>
> After the rewrite of KVM's debug support, this code doesn't even build any
> more.
>
> Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
>
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -118,11 +118,6 @@ struct kvm_arch {
>  struct kvm_vcpu_arch {
>  	u32 host_stack;
>  	u32 host_pid;
> -	u32 host_dbcr0;
> -	u32 host_dbcr1;
> -	u32 host_dbcr2;
> -	u32 host_iac[4];
> -	u32 host_msr;
>  
>  	u64 fpr[32];
>  	ulong gpr[32];
> @@ -200,10 +195,4 @@ struct kvm_vcpu_arch {
>  	unsigned long pending_exceptions;
>  };
>  
> -struct kvm_guest_debug {
> -	int enabled;
> -	unsigned long bp[4];
> -	int singlestep;
> -};
> -
>  #endif /* __POWERPC_KVM_HOST_H__ */
> diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
> --- a/arch/powerpc/include/asm/kvm_ppc.h
> +++ b/arch/powerpc/include/asm/kvm_ppc.h
> @@ -71,9 +71,6 @@ extern int kvmppc_core_vcpu_translate(st
>  extern void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
>  extern void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu);
>  
> -extern void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu);
> -extern void kvmppc_core_load_host_debugstate(struct kvm_vcpu *vcpu);
> -
>  extern void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu);
>  extern int kvmppc_core_pending_dec(struct kvm_vcpu *vcpu);
>  extern void kvmppc_core_queue_program(struct kvm_vcpu *vcpu);
> diff --git a/arch/powerpc/kvm/44x.c b/arch/powerpc/kvm/44x.c
> --- a/arch/powerpc/kvm/44x.c
> +++ b/arch/powerpc/kvm/44x.c
> @@ -28,72 +28,6 @@
>  
>  #include "44x_tlb.h"
>  
> -/* Note: clearing MSR[DE] just means that the debug interrupt will not be
> - * delivered *immediately*. Instead, it simply sets the appropriate DBSR bits.
> - * If those DBSR bits are still set when MSR[DE] is re-enabled, the interrupt
> - * will be delivered as an "imprecise debug event" (which is indicated by
> - * DBSR[IDE].
> - */
> -static void kvm44x_disable_debug_interrupts(void)
> -{
> -	mtmsr(mfmsr() & ~MSR_DE);
> -}
> -
> -void kvmppc_core_load_host_debugstate(struct kvm_vcpu *vcpu)
> -{
> -	kvm44x_disable_debug_interrupts();
> -
> -	mtspr(SPRN_IAC1, vcpu->arch.host_iac[0]);
> -	mtspr(SPRN_IAC2, vcpu->arch.host_iac[1]);
> -	mtspr(SPRN_IAC3, vcpu->arch.host_iac[2]);
> -	mtspr(SPRN_IAC4, vcpu->arch.host_iac[3]);
> -	mtspr(SPRN_DBCR1, vcpu->arch.host_dbcr1);
> -	mtspr(SPRN_DBCR2, vcpu->arch.host_dbcr2);
> -	mtspr(SPRN_DBCR0, vcpu->arch.host_dbcr0);
> -	mtmsr(vcpu->arch.host_msr);
> -}
> -
> -void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu)
> -{
> -	struct kvm_guest_debug *dbg = &vcpu->guest_debug;
> -	u32 dbcr0 = 0;
> -
> -	vcpu->arch.host_msr = mfmsr();
> -	kvm44x_disable_debug_interrupts();
> -
> -	/* Save host debug register state. */
> -	vcpu->arch.host_iac[0] = mfspr(SPRN_IAC1);
> -	vcpu->arch.host_iac[1] = mfspr(SPRN_IAC2);
> -	vcpu->arch.host_iac[2] = mfspr(SPRN_IAC3);
> -	vcpu->arch.host_iac[3] = mfspr(SPRN_IAC4);
> -	vcpu->arch.host_dbcr0 = mfspr(SPRN_DBCR0);
> -	vcpu->arch.host_dbcr1 = mfspr(SPRN_DBCR1);
> -	vcpu->arch.host_dbcr2 = mfspr(SPRN_DBCR2);
> -
> -	/* set registers up for guest */
> -
> -	if (dbg->bp[0]) {
> -		mtspr(SPRN_IAC1, dbg->bp[0]);
> -		dbcr0 |= DBCR0_IAC1 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[1]) {
> -		mtspr(SPRN_IAC2, dbg->bp[1]);
> -		dbcr0 |= DBCR0_IAC2 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[2]) {
> -		mtspr(SPRN_IAC3, dbg->bp[2]);
> -		dbcr0 |= DBCR0_IAC3 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[3]) {
> -		mtspr(SPRN_IAC4, dbg->bp[3]);
> -		dbcr0 |= DBCR0_IAC4 | DBCR0_IDM;
> -	}
> -
> -	mtspr(SPRN_DBCR0, dbcr0);
> -	mtspr(SPRN_DBCR1, 0);
> -	mtspr(SPRN_DBCR2, 0);
> -}
> -
>  void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
>  {
>  	kvmppc_44x_tlb_load(vcpu);
> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> --- a/arch/powerpc/kvm/powerpc.c
> +++ b/arch/powerpc/kvm/powerpc.c
> @@ -216,36 +216,18 @@ void kvm_arch_vcpu_uninit(struct kvm_vcp
>  
>  void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
>  {
> -	if (vcpu->guest_debug.enabled)
> -		kvmppc_core_load_guest_debugstate(vcpu);
> -
>  	kvmppc_core_vcpu_load(vcpu, cpu);
>  }
>  
>  void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
>  {
> -	if (vcpu->guest_debug.enabled)
> -		kvmppc_core_load_host_debugstate(vcpu);
> -
>  	kvmppc_core_vcpu_put(vcpu);
>  }
>  
>  int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
> -					struct kvm_guest_debug *dbg)
> +                                        struct kvm_guest_debug *dbg)
>  {
> -	int i;
> -
> -	vcpu->guest_debug.enabled = dbg->enabled;
> -	if (vcpu->guest_debug.enabled) {
> -		for (i=0; i < ARRAY_SIZE(vcpu->guest_debug.bp); i++) {
> -			if (dbg->breakpoints[i].enabled)
> -				vcpu->guest_debug.bp[i] = dbg->breakpoints[i].address;
> -			else
> -				vcpu->guest_debug.bp[i] = 0;
> -		}
> -	}
> -
> -	return 0;
> +	return -EINVAL;
>  }
>  
>  static void kvmppc_complete_dcr_load(struct kvm_vcpu *vcpu,
>
>   

This doesn't apply.  What was it diffed against?

-- 
error compiling committee.c: too many arguments to function


WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: Jan Kiszka <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>,
	kvm-devel <kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	kvm-ppc <kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] KVM: PowerPC: Disarm old guest debug interface
Date: Sun, 04 Jan 2009 12:54:11 +0200	[thread overview]
Message-ID: <49609553.6060308@redhat.com> (raw)
In-Reply-To: <1231012661.3501.4.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

Hollis Blanchard wrote:
>
> kvm: ppc: remove debug support broken by KVM debug rewrite
>
> After the rewrite of KVM's debug support, this code doesn't even build any
> more.
>
> Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -118,11 +118,6 @@ struct kvm_arch {
>  struct kvm_vcpu_arch {
>  	u32 host_stack;
>  	u32 host_pid;
> -	u32 host_dbcr0;
> -	u32 host_dbcr1;
> -	u32 host_dbcr2;
> -	u32 host_iac[4];
> -	u32 host_msr;
>  
>  	u64 fpr[32];
>  	ulong gpr[32];
> @@ -200,10 +195,4 @@ struct kvm_vcpu_arch {
>  	unsigned long pending_exceptions;
>  };
>  
> -struct kvm_guest_debug {
> -	int enabled;
> -	unsigned long bp[4];
> -	int singlestep;
> -};
> -
>  #endif /* __POWERPC_KVM_HOST_H__ */
> diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
> --- a/arch/powerpc/include/asm/kvm_ppc.h
> +++ b/arch/powerpc/include/asm/kvm_ppc.h
> @@ -71,9 +71,6 @@ extern int kvmppc_core_vcpu_translate(st
>  extern void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
>  extern void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu);
>  
> -extern void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu);
> -extern void kvmppc_core_load_host_debugstate(struct kvm_vcpu *vcpu);
> -
>  extern void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu);
>  extern int kvmppc_core_pending_dec(struct kvm_vcpu *vcpu);
>  extern void kvmppc_core_queue_program(struct kvm_vcpu *vcpu);
> diff --git a/arch/powerpc/kvm/44x.c b/arch/powerpc/kvm/44x.c
> --- a/arch/powerpc/kvm/44x.c
> +++ b/arch/powerpc/kvm/44x.c
> @@ -28,72 +28,6 @@
>  
>  #include "44x_tlb.h"
>  
> -/* Note: clearing MSR[DE] just means that the debug interrupt will not be
> - * delivered *immediately*. Instead, it simply sets the appropriate DBSR bits.
> - * If those DBSR bits are still set when MSR[DE] is re-enabled, the interrupt
> - * will be delivered as an "imprecise debug event" (which is indicated by
> - * DBSR[IDE].
> - */
> -static void kvm44x_disable_debug_interrupts(void)
> -{
> -	mtmsr(mfmsr() & ~MSR_DE);
> -}
> -
> -void kvmppc_core_load_host_debugstate(struct kvm_vcpu *vcpu)
> -{
> -	kvm44x_disable_debug_interrupts();
> -
> -	mtspr(SPRN_IAC1, vcpu->arch.host_iac[0]);
> -	mtspr(SPRN_IAC2, vcpu->arch.host_iac[1]);
> -	mtspr(SPRN_IAC3, vcpu->arch.host_iac[2]);
> -	mtspr(SPRN_IAC4, vcpu->arch.host_iac[3]);
> -	mtspr(SPRN_DBCR1, vcpu->arch.host_dbcr1);
> -	mtspr(SPRN_DBCR2, vcpu->arch.host_dbcr2);
> -	mtspr(SPRN_DBCR0, vcpu->arch.host_dbcr0);
> -	mtmsr(vcpu->arch.host_msr);
> -}
> -
> -void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu)
> -{
> -	struct kvm_guest_debug *dbg = &vcpu->guest_debug;
> -	u32 dbcr0 = 0;
> -
> -	vcpu->arch.host_msr = mfmsr();
> -	kvm44x_disable_debug_interrupts();
> -
> -	/* Save host debug register state. */
> -	vcpu->arch.host_iac[0] = mfspr(SPRN_IAC1);
> -	vcpu->arch.host_iac[1] = mfspr(SPRN_IAC2);
> -	vcpu->arch.host_iac[2] = mfspr(SPRN_IAC3);
> -	vcpu->arch.host_iac[3] = mfspr(SPRN_IAC4);
> -	vcpu->arch.host_dbcr0 = mfspr(SPRN_DBCR0);
> -	vcpu->arch.host_dbcr1 = mfspr(SPRN_DBCR1);
> -	vcpu->arch.host_dbcr2 = mfspr(SPRN_DBCR2);
> -
> -	/* set registers up for guest */
> -
> -	if (dbg->bp[0]) {
> -		mtspr(SPRN_IAC1, dbg->bp[0]);
> -		dbcr0 |= DBCR0_IAC1 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[1]) {
> -		mtspr(SPRN_IAC2, dbg->bp[1]);
> -		dbcr0 |= DBCR0_IAC2 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[2]) {
> -		mtspr(SPRN_IAC3, dbg->bp[2]);
> -		dbcr0 |= DBCR0_IAC3 | DBCR0_IDM;
> -	}
> -	if (dbg->bp[3]) {
> -		mtspr(SPRN_IAC4, dbg->bp[3]);
> -		dbcr0 |= DBCR0_IAC4 | DBCR0_IDM;
> -	}
> -
> -	mtspr(SPRN_DBCR0, dbcr0);
> -	mtspr(SPRN_DBCR1, 0);
> -	mtspr(SPRN_DBCR2, 0);
> -}
> -
>  void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
>  {
>  	kvmppc_44x_tlb_load(vcpu);
> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> --- a/arch/powerpc/kvm/powerpc.c
> +++ b/arch/powerpc/kvm/powerpc.c
> @@ -216,36 +216,18 @@ void kvm_arch_vcpu_uninit(struct kvm_vcp
>  
>  void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
>  {
> -	if (vcpu->guest_debug.enabled)
> -		kvmppc_core_load_guest_debugstate(vcpu);
> -
>  	kvmppc_core_vcpu_load(vcpu, cpu);
>  }
>  
>  void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
>  {
> -	if (vcpu->guest_debug.enabled)
> -		kvmppc_core_load_host_debugstate(vcpu);
> -
>  	kvmppc_core_vcpu_put(vcpu);
>  }
>  
>  int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
> -					struct kvm_guest_debug *dbg)
> +                                        struct kvm_guest_debug *dbg)
>  {
> -	int i;
> -
> -	vcpu->guest_debug.enabled = dbg->enabled;
> -	if (vcpu->guest_debug.enabled) {
> -		for (i=0; i < ARRAY_SIZE(vcpu->guest_debug.bp); i++) {
> -			if (dbg->breakpoints[i].enabled)
> -				vcpu->guest_debug.bp[i] = dbg->breakpoints[i].address;
> -			else
> -				vcpu->guest_debug.bp[i] = 0;
> -		}
> -	}
> -
> -	return 0;
> +	return -EINVAL;
>  }
>  
>  static void kvmppc_complete_dcr_load(struct kvm_vcpu *vcpu,
>
>   

This doesn't apply.  What was it diffed against?

-- 
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-01-04 10:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-19 17:13 [PATCH] KVM: PowerPC: Disarm old guest debug interface Jan Kiszka
2008-12-24 11:48 ` Avi Kivity
2009-01-03 19:57   ` Hollis Blanchard
2009-01-03 19:57     ` Hollis Blanchard
     [not found]     ` <1231012661.3501.4.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-01-04 10:54       ` Avi Kivity [this message]
2009-01-04 10:54         ` Avi Kivity
2009-01-04 19:51         ` [PATCH] [v2] " Hollis Blanchard
2009-01-04 19:51           ` Hollis Blanchard
     [not found]           ` <1231098669.7724.16.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-01-05 13:32             ` Avi Kivity
2009-01-05 13:32               ` Avi Kivity

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=49609553.6060308@redhat.com \
    --to=avi@redhat.com \
    --cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org \
    --cc=kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.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.