From: Janosch Frank <frankja@linux.ibm.com>
To: kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com,
pmorel@linux.ibm.com, david@redhat.com, thuth@redhat.com
Subject: [kvm-unit-tests PATCH v2 6/8] s390x: Print more information on program exceptions
Date: Wed, 17 Feb 2021 09:41:14 -0500 [thread overview]
Message-ID: <20210217144116.3368-7-frankja@linux.ibm.com> (raw)
In-Reply-To: <20210217144116.3368-1-frankja@linux.ibm.com>
Currently we only get a single line of output if a test runs in a
unexpected program exception. Let's also print the general registers
to give soem more context.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Acked-by: Pierre Morel <pmorel@linux.ibm.com>
---
lib/s390x/interrupt.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c
index 23ad922c..22649d04 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -115,6 +115,21 @@ static void fixup_pgm_int(struct stack_frame_int *stack)
/* suppressed/terminated/completed point already at the next address */
}
+static void print_int_regs(struct stack_frame_int *stack)
+{
+ printf("\n");
+ printf("GPRS:\n");
+ printf("%016lx %016lx %016lx %016lx\n",
+ stack->grs1[0], stack->grs1[1], stack->grs0[0], stack->grs0[1]);
+ printf("%016lx %016lx %016lx %016lx\n",
+ stack->grs0[2], stack->grs0[3], stack->grs0[4], stack->grs0[5]);
+ printf("%016lx %016lx %016lx %016lx\n",
+ stack->grs0[6], stack->grs0[7], stack->grs0[8], stack->grs0[9]);
+ printf("%016lx %016lx %016lx %016lx\n",
+ stack->grs0[10], stack->grs0[11], stack->grs0[12], stack->grs0[13]);
+ printf("\n");
+}
+
static void print_pgm_info(struct stack_frame_int *stack)
{
@@ -122,6 +137,7 @@ static void print_pgm_info(struct stack_frame_int *stack)
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);
+ print_int_regs(stack);
dump_stack();
report_summary();
abort();
@@ -132,6 +148,7 @@ void handle_pgm_int(struct stack_frame_int *stack)
if (!pgm_int_expected) {
/* Force sclp_busy to false, otherwise we will loop forever */
sclp_handle_ext();
+ print_pgm_info(stack);
report_abort("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);
--
2.25.1
next prev parent reply other threads:[~2021-02-17 14:43 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-17 14:41 [kvm-unit-tests PATCH v2 0/8] s390x: Cleanup exception register save/restore and implement backtrace Janosch Frank
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 1/8] s390x: Fix fpc store address in RESTORE_REGS_STACK Janosch Frank
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 2/8] s390x: Fully commit to stack save area for exceptions Janosch Frank
2021-02-17 15:35 ` Thomas Huth
2021-02-17 16:54 ` Janosch Frank
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 3/8] RFC: s390x: Define STACK_FRAME_INT_SIZE macro Janosch Frank
2021-02-17 15:38 ` Thomas Huth
2021-02-17 16:08 ` Janosch Frank
2021-02-17 16:10 ` Thomas Huth
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 4/8] s390x: Introduce and use CALL_INT_HANDLER macro Janosch Frank
2021-02-17 15:49 ` Thomas Huth
2021-02-17 15:55 ` Thomas Huth
2021-02-17 16:22 ` Janosch Frank
2021-02-17 17:03 ` Thomas Huth
2021-02-18 9:16 ` Janosch Frank
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 5/8] s390x: Provide preliminary backtrace support Janosch Frank
2021-02-17 16:01 ` Thomas Huth
2021-02-17 16:12 ` Janosch Frank
2021-02-17 14:41 ` Janosch Frank [this message]
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 7/8] s390x: Move diag308_load_reset to stack saving Janosch Frank
2021-02-17 14:41 ` [kvm-unit-tests PATCH v2 8/8] s390x: Remove SAVE/RESTORE_stack Janosch Frank
2021-02-17 16:18 ` Thomas Huth
2021-02-17 16:46 ` Janosch Frank
2021-02-17 16:50 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210217144116.3368-7-frankja@linux.ibm.com \
--to=frankja@linux.ibm.com \
--cc=david@redhat.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pmorel@linux.ibm.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.