diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2024-03-12 04:33:18 +1000 |
---|---|---|
committer | Nicholas Piggin <npiggin@gmail.com> | 2024-05-24 09:34:38 +1000 |
commit | 9728fb5c22a51b5f2f65ba36fdcd8fd0999be6fc (patch) | |
tree | 7789096694f202ecab58b47e89f397c3e189ff39 | |
parent | cce7aee8dd934dca3040eb8ea1ad1973701d7c96 (diff) | |
download | qemu-9728fb5c22a51b5f2f65ba36fdcd8fd0999be6fc.zip qemu-9728fb5c22a51b5f2f65ba36fdcd8fd0999be6fc.tar.gz qemu-9728fb5c22a51b5f2f65ba36fdcd8fd0999be6fc.tar.bz2 |
target/ppc: improve checkstop logging
Change the logging not to print to stderr as well, because a
checkstop is a guest error (or perhaps a simulated machine error)
rather than a QEMU error, so send it to the log.
Update the checkstop message, and log CPU registers too.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
-rw-r--r-- | target/ppc/excp_helper.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index fd00c04..a283c97 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -430,17 +430,19 @@ static void powerpc_mcheck_checkstop(CPUPPCState *env) /* KVM guests always have MSR[ME] enabled */ #ifdef CONFIG_TCG CPUState *cs = env_cpu(env); + FILE *f; if (FIELD_EX64(env->msr, MSR, ME)) { return; } - /* Machine check exception is not enabled. Enter checkstop state. */ - fprintf(stderr, "Machine check while not allowed. " - "Entering checkstop state\n"); - if (qemu_log_separate()) { - qemu_log("Machine check while not allowed. " - "Entering checkstop state\n"); + f = qemu_log_trylock(); + if (f) { + fprintf(f, "Entering checkstop state: " + "machine check with MSR[ME]=0\n"); + cpu_dump_state(cs, f, CPU_DUMP_FPU | CPU_DUMP_CCOP); + qemu_log_unlock(f); + } /* * This stops the machine and logs CPU state without killing QEMU |