Thread (20 messages) 20 messages, 3 authors, 2014-07-28

Re: [PATCH 2/4] KVM: PPC: BOOK3S: PR: Doorbell support

From: Aneesh Kumar K.V <hidden>
Date: 2014-06-06 09:29:01
Also in: kvm

Alexander Graf [off-list ref] writes:
On 05.06.14 14:08, Aneesh Kumar K.V wrote:
quoted
We don't have SMT support yet, hence we should not find a doorbell
message generated

Signed-off-by: Aneesh Kumar K.V <redacted>
---
  arch/powerpc/kvm/book3s_emulate.c | 18 ++++++++++++++++++
  1 file changed, 18 insertions(+)
diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
index 1bb16a59dcbc..d6c87d085182 100644
--- a/arch/powerpc/kvm/book3s_emulate.c
+++ b/arch/powerpc/kvm/book3s_emulate.c
@@ -28,7 +28,9 @@
  #define OP_19_XOP_RFI		50
  
  #define OP_31_XOP_MFMSR		83
+#define OP_31_XOP_MSGSNDP	142
  #define OP_31_XOP_MTMSR		146
+#define OP_31_XOP_MSGCLRP	174
  #define OP_31_XOP_MTMSRD	178
  #define OP_31_XOP_MTSR		210
  #define OP_31_XOP_MTSRIN	242
@@ -303,6 +305,22 @@ int kvmppc_core_emulate_op_pr(struct kvm_run *run, struct kvm_vcpu *vcpu,
  
  			break;
  		}
+		case OP_31_XOP_MSGSNDP:
+		{
+			/*
+			 * PR KVM still don't support SMT mode. So we should
still?
quoted
+			 * not see a MSGSNDP/MSGCLRP used with PR KVM
+			 */
+			pr_info("KVM: MSGSNDP used in non SMT case\n");
+			emulated = EMULATE_FAIL;
What would happen on an HV guest with only 1 thread that MSGSNDs to 
thread 0? Would the guest get an illegal instruction trap, a 
self-interrupt or would this be a simple nop?
We do get a self-interrupt. I tried the below

tag = mfspr(SPRN_TIR) & 0x7f;
ppc_msgsnd(5, 0, tag);

And that results in doorbell exception. That implies we will have to
have full implementation of doorbell. You can drop patch 2 and 3 from
this series. I will rework them.

NOTE: This is not an issue for Linux guest, because we don't send ipi
to self. But to complete the emulation of msgsndp we will need to
emulate it properly.

-aneesh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help