public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/5] ppc patch queue 2013-04-17
@ 2013-04-17 19:04 Alexander Graf
  2013-04-17 19:04 ` [PATCH 1/3] Added ONE_REG interface for debug instruction Alexander Graf
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Alexander Graf @ 2013-04-17 19:04 UTC (permalink / raw)
  To: kvm-ppc; +Cc: kvm@vger.kernel.org mailing list, Marcelo Tosatti, Gleb Natapov

Hi Marcelo / Gleb,

This is my current patch queue for ppc.  Please pull for 3.10.

Changes include:

  - KVM: PPC: Fix in-kernel MMIO loads
  - KVM: PPC: BookE: Fix 64-bit guest kernels with SMP

Alex


The following changes since commit 79558f112fc0352e057f7b5e158e3d88b8b62c60:
  Alexander Graf (1):
        KVM: ARM: Fix kvm_vm_ioctl_irq_line

are available in the git repository at:

  git://github.com/agraf/linux-2.6.git kvm-ppc-next

Alexander Graf (2):
      Merge commit 'origin/next' into kvm-ppc-next
      Merge commit 'origin/next' into kvm-ppc-next

Bharat Bhushan (1):
      Added ONE_REG interface for debug instruction

Scott Wood (1):
      kvm/ppc: don't call complete_mmio_load when it's a store

Stuart Yoder (1):
      KVM: PPC: emulate dcbst

 arch/powerpc/include/asm/kvm_book3s.h |    2 ++
 arch/powerpc/include/asm/kvm_booke.h  |    2 ++
 arch/powerpc/include/uapi/asm/kvm.h   |    4 ++++
 arch/powerpc/kvm/book3s.c             |    6 ++++++
 arch/powerpc/kvm/booke.c              |    6 ++++++
 arch/powerpc/kvm/emulate.c            |    2 ++
 arch/powerpc/kvm/powerpc.c            |    1 -
 7 files changed, 22 insertions(+), 1 deletions(-)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] Added ONE_REG interface for debug instruction
  2013-04-17 19:04 [PULL 0/5] ppc patch queue 2013-04-17 Alexander Graf
@ 2013-04-17 19:04 ` Alexander Graf
  2013-04-17 19:04 ` [PATCH 2/3] KVM: PPC: emulate dcbst Alexander Graf
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Graf @ 2013-04-17 19:04 UTC (permalink / raw)
  To: kvm-ppc
  Cc: kvm@vger.kernel.org mailing list, Marcelo Tosatti, Gleb Natapov,
	Bharat Bhushan, Bharat Bhushan

From: Bharat Bhushan <r65777@freescale.com>

This patch adds the one_reg interface to get the special instruction
to be used for setting software breakpoint from userspace.

Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/asm/kvm_book3s.h |    2 ++
 arch/powerpc/include/asm/kvm_booke.h  |    2 ++
 arch/powerpc/include/uapi/asm/kvm.h   |    4 ++++
 arch/powerpc/kvm/book3s.c             |    6 ++++++
 arch/powerpc/kvm/booke.c              |    6 ++++++
 5 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index 5a56e1c..bc81842 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h
@@ -458,6 +458,8 @@ static inline bool kvmppc_critical_section(struct kvm_vcpu *vcpu)
 #define OSI_SC_MAGIC_R4			0x77810F9B
 
 #define INS_DCBZ			0x7c0007ec
+/* TO = 31 for unconditional trap */
+#define INS_TW				0x7fe00008
 
 /* LPIDs we support with this build -- runtime limit may be lower */
 #define KVMPPC_NR_LPIDS			(LPID_RSVD + 1)
diff --git a/arch/powerpc/include/asm/kvm_booke.h b/arch/powerpc/include/asm/kvm_booke.h
index b7cd335..d3c1eb3 100644
--- a/arch/powerpc/include/asm/kvm_booke.h
+++ b/arch/powerpc/include/asm/kvm_booke.h
@@ -26,6 +26,8 @@
 /* LPIDs we support with this build -- runtime limit may be lower */
 #define KVMPPC_NR_LPIDS                        64
 
+#define KVMPPC_INST_EHPRIV	0x7c00021c
+
 static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val)
 {
 	vcpu->arch.gpr[num] = val;
diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h
index ef072b1..c2ff99c 100644
--- a/arch/powerpc/include/uapi/asm/kvm.h
+++ b/arch/powerpc/include/uapi/asm/kvm.h
@@ -422,4 +422,8 @@ struct kvm_get_htab_header {
 #define KVM_REG_PPC_CLEAR_TSR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x88)
 #define KVM_REG_PPC_TCR		(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x89)
 #define KVM_REG_PPC_TSR		(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8a)
+
+/* Debugging: Special instruction for software breakpoint */
+#define KVM_REG_PPC_DEBUG_INST	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8b)
+
 #endif /* __LINUX_KVM_POWERPC_H */
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 6548445..2d32ae4 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -529,6 +529,12 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
 			val = get_reg_val(reg->id, vcpu->arch.vscr.u[3]);
 			break;
 #endif /* CONFIG_ALTIVEC */
+		case KVM_REG_PPC_DEBUG_INST: {
+			u32 opcode = INS_TW;
+			r = copy_to_user((u32 __user *)(long)reg->addr,
+					 &opcode, sizeof(u32));
+			break;
+		}
 		default:
 			r = -EINVAL;
 			break;
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 58057d6..a49a68a 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -1447,6 +1447,12 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
 	case KVM_REG_PPC_TSR:
 		r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr);
 		break;
+	case KVM_REG_PPC_DEBUG_INST: {
+		u32 opcode = KVMPPC_INST_EHPRIV;
+		r = copy_to_user((u32 __user *)(long)reg->addr,
+				 &opcode, sizeof(u32));
+		break;
+	}
 	default:
 		break;
 	}
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] KVM: PPC: emulate dcbst
  2013-04-17 19:04 [PULL 0/5] ppc patch queue 2013-04-17 Alexander Graf
  2013-04-17 19:04 ` [PATCH 1/3] Added ONE_REG interface for debug instruction Alexander Graf
@ 2013-04-17 19:04 ` Alexander Graf
  2013-04-17 19:04 ` [PATCH 3/3] kvm/ppc: don't call complete_mmio_load when it's a store Alexander Graf
  2013-04-22  7:47 ` [PULL 0/5] ppc patch queue 2013-04-17 Gleb Natapov
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Graf @ 2013-04-17 19:04 UTC (permalink / raw)
  To: kvm-ppc
  Cc: kvm@vger.kernel.org mailing list, Marcelo Tosatti, Gleb Natapov,
	Stuart Yoder

From: Stuart Yoder <stuart.yoder@freescale.com>

Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/kvm/emulate.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c
index 7a73b6f..631a265 100644
--- a/arch/powerpc/kvm/emulate.c
+++ b/arch/powerpc/kvm/emulate.c
@@ -38,6 +38,7 @@
 
 #define OP_31_XOP_TRAP      4
 #define OP_31_XOP_LWZX      23
+#define OP_31_XOP_DCBST     54
 #define OP_31_XOP_TRAP_64   68
 #define OP_31_XOP_DCBF      86
 #define OP_31_XOP_LBZX      87
@@ -370,6 +371,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
 			emulated = kvmppc_emulate_mtspr(vcpu, sprn, rs);
 			break;
 
+		case OP_31_XOP_DCBST:
 		case OP_31_XOP_DCBF:
 		case OP_31_XOP_DCBI:
 			/* Do nothing. The guest is performing dcbi because
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] kvm/ppc: don't call complete_mmio_load when it's a store
  2013-04-17 19:04 [PULL 0/5] ppc patch queue 2013-04-17 Alexander Graf
  2013-04-17 19:04 ` [PATCH 1/3] Added ONE_REG interface for debug instruction Alexander Graf
  2013-04-17 19:04 ` [PATCH 2/3] KVM: PPC: emulate dcbst Alexander Graf
@ 2013-04-17 19:04 ` Alexander Graf
  2013-04-22  7:47 ` [PULL 0/5] ppc patch queue 2013-04-17 Gleb Natapov
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Graf @ 2013-04-17 19:04 UTC (permalink / raw)
  To: kvm-ppc
  Cc: kvm@vger.kernel.org mailing list, Marcelo Tosatti, Gleb Natapov,
	Scott Wood

From: Scott Wood <scottwood@freescale.com>

complete_mmio_load writes back the mmio result into the
destination register.  Doing this on a store results in
register corruption.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/kvm/powerpc.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 16b4595..a822659 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -683,7 +683,6 @@ int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
 
 	if (!kvm_io_bus_write(vcpu->kvm, KVM_MMIO_BUS, run->mmio.phys_addr,
 			      bytes, &run->mmio.data)) {
-		kvmppc_complete_mmio_load(vcpu, run);
 		vcpu->mmio_needed = 0;
 		return EMULATE_DONE;
 	}
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PULL 0/5] ppc patch queue 2013-04-17
  2013-04-17 19:04 [PULL 0/5] ppc patch queue 2013-04-17 Alexander Graf
                   ` (2 preceding siblings ...)
  2013-04-17 19:04 ` [PATCH 3/3] kvm/ppc: don't call complete_mmio_load when it's a store Alexander Graf
@ 2013-04-22  7:47 ` Gleb Natapov
  3 siblings, 0 replies; 5+ messages in thread
From: Gleb Natapov @ 2013-04-22  7:47 UTC (permalink / raw)
  To: Alexander Graf; +Cc: kvm-ppc, kvm@vger.kernel.org mailing list, Marcelo Tosatti

On Wed, Apr 17, 2013 at 09:04:04PM +0200, Alexander Graf wrote:
> Hi Marcelo / Gleb,
> 
> This is my current patch queue for ppc.  Please pull for 3.10.
> 
Pulled. Thanks.

> Changes include:
> 
>   - KVM: PPC: Fix in-kernel MMIO loads
>   - KVM: PPC: BookE: Fix 64-bit guest kernels with SMP
> 
> Alex
> 
> 
> The following changes since commit 79558f112fc0352e057f7b5e158e3d88b8b62c60:
>   Alexander Graf (1):
>         KVM: ARM: Fix kvm_vm_ioctl_irq_line
> 
> are available in the git repository at:
> 
>   git://github.com/agraf/linux-2.6.git kvm-ppc-next
> 
> Alexander Graf (2):
>       Merge commit 'origin/next' into kvm-ppc-next
>       Merge commit 'origin/next' into kvm-ppc-next
> 
> Bharat Bhushan (1):
>       Added ONE_REG interface for debug instruction
> 
> Scott Wood (1):
>       kvm/ppc: don't call complete_mmio_load when it's a store
> 
> Stuart Yoder (1):
>       KVM: PPC: emulate dcbst
> 
>  arch/powerpc/include/asm/kvm_book3s.h |    2 ++
>  arch/powerpc/include/asm/kvm_booke.h  |    2 ++
>  arch/powerpc/include/uapi/asm/kvm.h   |    4 ++++
>  arch/powerpc/kvm/book3s.c             |    6 ++++++
>  arch/powerpc/kvm/booke.c              |    6 ++++++
>  arch/powerpc/kvm/emulate.c            |    2 ++
>  arch/powerpc/kvm/powerpc.c            |    1 -
>  7 files changed, 22 insertions(+), 1 deletions(-)

--
			Gleb.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-04-22  7:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-17 19:04 [PULL 0/5] ppc patch queue 2013-04-17 Alexander Graf
2013-04-17 19:04 ` [PATCH 1/3] Added ONE_REG interface for debug instruction Alexander Graf
2013-04-17 19:04 ` [PATCH 2/3] KVM: PPC: emulate dcbst Alexander Graf
2013-04-17 19:04 ` [PATCH 3/3] kvm/ppc: don't call complete_mmio_load when it's a store Alexander Graf
2013-04-22  7:47 ` [PULL 0/5] ppc patch queue 2013-04-17 Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox