[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 01/12] target/ppc: Make checkstop actually stop the system
From: |
Miles Glenn |
Subject: |
Re: [PATCH v2 01/12] target/ppc: Make checkstop actually stop the system |
Date: |
Tue, 21 May 2024 10:32:30 -0500 |
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Thanks,
Glenn
On Tue, 2024-05-21 at 11:30 +1000, Nicholas Piggin wrote:
> checkstop state does not halt the system, interrupts continue to be
> serviced, and other CPUs run. Make it stop the machine with
> qemu_system_guest_panicked.
>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> target/ppc/excp_helper.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index 3be086d10b..b2b51537b7 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -19,6 +19,8 @@
> #include "qemu/osdep.h"
> #include "qemu/main-loop.h"
> #include "qemu/log.h"
> +#include "sysemu/sysemu.h"
> +#include "sysemu/runstate.h"
> #include "cpu.h"
> #include "exec/exec-all.h"
> #include "internal.h"
> @@ -425,6 +427,8 @@ static void powerpc_set_excp_state(PowerPCCPU
> *cpu, target_ulong vector,
>
> static void powerpc_mcheck_checkstop(CPUPPCState *env)
> {
> + /* KVM guests always have MSR[ME] enabled */
> +#ifdef CONFIG_TCG
> CPUState *cs = env_cpu(env);
>
> if (FIELD_EX64(env->msr, MSR, ME)) {
> @@ -437,9 +441,15 @@ static void powerpc_mcheck_checkstop(CPUPPCState
> *env)
> if (qemu_log_separate()) {
> qemu_log("Machine check while not allowed. "
> "Entering checkstop state\n");
> - }
> - cs->halted = 1;
> - cpu_interrupt_exittb(cs);
> +
> + /*
> + * This stops the machine and logs CPU state without killing
> QEMU
> + * (like cpu_abort()) so the machine can still be debugged
> (because
> + * it is often a guest error).
> + */
> + qemu_system_guest_panicked(NULL);
> + cpu_loop_exit_noexc(cs);
> +#endif
> }
>
> static void powerpc_excp_40x(PowerPCCPU *cpu, int excp)
- [PATCH v2 00/12] target/ppc: Various TCG emulation patches, Nicholas Piggin, 2024/05/20
- [PATCH v2 02/12] target/ppc: improve checkstop logging, Nicholas Piggin, 2024/05/20
- [PATCH v2 01/12] target/ppc: Make checkstop actually stop the system, Nicholas Piggin, 2024/05/20
- Re: [PATCH v2 01/12] target/ppc: Make checkstop actually stop the system,
Miles Glenn <=
- [PATCH v2 03/12] target/ppc: Implement attn instruction on BookS 64-bit processors, Nicholas Piggin, 2024/05/20
- [PATCH v2 04/12] target/ppc: BookE DECAR SPR is 32-bit, Nicholas Piggin, 2024/05/20
- [PATCH v2 05/12] target/ppc: Wire up BookE ATB registers for e500 family, Nicholas Piggin, 2024/05/20
- [PATCH v2 06/12] target/ppc: Add PPR32 SPR, Nicholas Piggin, 2024/05/20