Reviewed-by: Glenn Miles <mil...@linux.ibm.com> Thanks,
Glenn On Tue, 2024-05-21 at 11:30 +1000, Nicholas Piggin wrote: > 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. > > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > --- > target/ppc/excp_helper.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c > index b2b51537b7..17bf8df9d7 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