@samitouri / QOSamiQemu / commits / a1c2dfee4f

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 <sourabhjain@linux.ibm.com> Cc: Harsh Prateek Bora <harshpb@linux.ibm.com> Cc: Mahesh J Salgaonkar <mahesh@linux.ibm.com> Reported-by: Anushree Mathur <anushree.mathur@linux.vnet.ibm.com> Suggested-by: Vishal Chourasia <vishalc@linux.ibm.com> Reviewed-by: Vishal Chourasia <vishalc@linux.ibm.com> Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com> 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 <harshpb@linux.ibm.com>

Shivang Upadhyay committed May 11, 2026 at 15:20 UTC a1c2dfee4f0229bc59bd3ca20af8de1b5543973d
1 file changed +9
hw/ppc/spapr_hcall.c
+9
@@ -1105,6 +1105,15 @@ static target_ulong h_signal_sys_reset(PowerPCCPU *cpu,
1105 continue;
1106 }
1107 }
1108 +
1109 + /* Skip quiesced CPUs - they are in RTAS stopped state and
1110 + * should not be reset. This prevents kdump hangs when CPUs
1111 + * are hotplugged but not yet started by the guest.
1112 + */
1113 + if (c->env.quiesced) {
1114 + continue;
1115 + }
1116 +
1117 run_on_cpu(cs, spapr_do_system_reset_on_cpu, RUN_ON_CPU_NULL);
1118 }
1119 return H_SUCCESS;