Thread (22 messages) 22 messages, 4 authors, 2021-07-23

Re: [kvm-unit-tests PATCH 5/5] lib: s390x: Print if a pgm happened while in SIE

From: Cornelia Huck <cohuck@redhat.com>
Date: 2021-06-30 09:13:07
Also in: linux-s390

On Tue, Jun 29 2021, Janosch Frank [off-list ref] wrote:
quoted hunk ↗ jump to hunk
For debugging it helps if you know if the PGM happened while being in
SIE or not.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 lib/s390x/interrupt.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c
index b627942..76015b1 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -141,10 +141,21 @@ static void print_int_regs(struct stack_frame_int *stack)
 static void print_pgm_info(struct stack_frame_int *stack)
 
 {
+	bool in_sie;
+
+	in_sie = (lc->pgm_old_psw.addr >= (uintptr_t)sie_entry &&
+		  lc->pgm_old_psw.addr <= (uintptr_t)sie_exit);
+
 	printf("\n");
-	printf("Unexpected program interrupt: %d on cpu %d at %#lx, ilen %d\n",
-	       lc->pgm_int_code, stap(), lc->pgm_old_psw.addr,
-	       lc->pgm_int_id);
+	if (!in_sie)
+		printf("Unexpected program interrupt: %d on cpu %d at %#lx, ilen %d\n",
+		       lc->pgm_int_code, stap(), lc->pgm_old_psw.addr,
+		       lc->pgm_int_id);
+	else
+		printf("Unexpected program interrupt in SIE: %d on cpu %d at %#lx, ilen %d\n",
+		       lc->pgm_int_code, stap(), lc->pgm_old_psw.addr,
+		       lc->pgm_int_id);
Hm...

		printf("Unexpected program interrupt%s: %d on cpu %d at %#lx, ilen %d\n",
		       in_sie ? " in SIE" : "",
		       lc->pgm_int_code, stap(), lc->pgm_old_psw.addr,
		       lc->pgm_int_id);

Matter of taste, I guess.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help