* [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