From: Shivang Upadhyay Date: Mon, 11 May 2026 09:50:55 +0000 (+0530) Subject: ppc/spapr: Skip system reset for quiesced CPUs X-Git-Tag: v11.1.0-rc0~100^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a1c2dfee4f0229bc59bd3ca20af8de1b5543973d;p=thirdparty%2Fqemu.git ppc/spapr: Skip system reset for quiesced CPUs During DLPAR CPU hotplug, newly added CPUs start in RTAS stopped state (quiesced). If a kexec crash occurs before the guest starts these CPUs via start-cpu RTAS call, H_SIGNAL_SYS_RESET_ALL_OTHERS will reset them anyway, causing the kdump kernel to hang: [ 5.519483][ T1] Processor 0 is stuck. [ 11.089481][ T1] Processor 1 is stuck. The hypervisor should only reset CPUs that the guest has started. The cpu->env.quiesced flag tracks RTAS stopped state - CPUs in this state are already inactive and should not be reset. Skip system reset for quiesced CPUs to prevent kdump hangs during CPU hotplug operations. Cc: Sourabh Jain Cc: Harsh Prateek Bora Cc: Mahesh J Salgaonkar Reported-by: Anushree Mathur Suggested-by: Vishal Chourasia Reviewed-by: Vishal Chourasia Signed-off-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20260511095055.82495-1-shivangu@linux.ibm.com [harshpb: expanded comment to elobarate more on the rationale] Signed-off-by: Harsh Prateek Bora --- diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 032805a8d0..60ba215e86 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1105,6 +1105,15 @@ static target_ulong h_signal_sys_reset(PowerPCCPU *cpu, continue; } } + + /* Skip quiesced CPUs - they are in RTAS stopped state and + * should not be reset. This prevents kdump hangs when CPUs + * are hotplugged but not yet started by the guest. + */ + if (c->env.quiesced) { + continue; + } + run_on_cpu(cs, spapr_do_system_reset_on_cpu, RUN_ON_CPU_NULL); } return H_SUCCESS;