Page MenuHomeFreeBSD

D20019.diff
No OneTemporary

D20019.diff

Index: head/sys/x86/x86/mp_x86.c
===================================================================
--- head/sys/x86/x86/mp_x86.c
+++ head/sys/x86/x86/mp_x86.c
@@ -1406,8 +1406,17 @@
CPU_SET_ATOMIC(cpu, &stopped_cpus);
/* Wait for restart */
- while (!CPU_ISSET(cpu, &started_cpus))
- ia32_pause();
+ while (!CPU_ISSET(cpu, &started_cpus)) {
+ ia32_pause();
+
+ /*
+ * Halt non-BSP CPUs on panic -- we're never going to need them
+ * again, and might as well save power / release resources
+ * (e.g., overprovisioned VM infrastructure).
+ */
+ while (__predict_false(!IS_BSP() && panicstr != NULL))
+ halt();
+ }
cpustop_handler_post(cpu);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 2, 6:08 AM (8 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30710590
Default Alt Text
D20019.diff (671 B)

Event Timeline