qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL 05/10] s390x/kvm: Log unmanageable program interrupti


From: Cornelia Huck
Subject: [Qemu-devel] [PULL 05/10] s390x/kvm: Log unmanageable program interruptions
Date: Tue, 10 Jun 2014 10:08:19 +0200

From: Thomas Huth <address@hidden>

The kernel only drops to userspace if an endless program interrupt loop
has been detected. Let's print an error message in this case to inform
the user about the crash and stop the affected CPU with a panic event,
just like it is already done for the external interruption loop detection.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
 target-s390x/kvm.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index be703bd..9adda1b 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -83,6 +83,7 @@
 #define DIAG_KVM_BREAKPOINT             0x501
 
 #define ICPT_INSTRUCTION                0x04
+#define ICPT_PROGRAM                    0x08
 #define ICPT_EXT_INT                    0x14
 #define ICPT_WAITPSW                    0x1c
 #define ICPT_SOFT_INTERCEPT             0x24
@@ -966,6 +967,11 @@ static int handle_intercept(S390CPU *cpu)
         case ICPT_INSTRUCTION:
             r = handle_instruction(cpu, run);
             break;
+        case ICPT_PROGRAM:
+            unmanageable_intercept(cpu, "program interrupt",
+                                   offsetof(LowCore, program_new_psw));
+            r = EXCP_HALTED;
+            break;
         case ICPT_EXT_INT:
             unmanageable_intercept(cpu, "external interrupt",
                                    offsetof(LowCore, external_new_psw));
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]