SchOS/kernel
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 38c89b1a9a panic stops every other processor
A panic used to stop only the processor it happened on. The rest carried
on with a dead kernel: on the ASUS laptop the report flashed up and was
drawn over, and the fans stayed loud until the power button was held.

Now the panicking processor sends every other one an NMI, which arrives
even with interrupts off, and trap() halts a processor that takes one
while panic_stop is set -- first thing, before the canary check, since
that stack may be what broke. NMI gets its own per-CPU stack (IST 1):
for a few instructions at the top of syscall_entry the live stack is the
user's, at ring 0, and a fault pushing the frame there would be a double
fault on the same stack and a reset instead of a report.

A second processor that panics while one is already reporting halts
instead of drawing over it; the owner's own nested panic still gets
through.

Checked under QEMU with -smp 4: after a sysrq crash CPUs 1-3 sit in hlt
with IF clear and CPU 0 is in the report's blink loop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
2026-10-25 00:50:50 +02:00
..
acpi i2c-hid: the touchpad crash was a printf format, not the driver 2026-10-25 00:28:23 +02:00
arch/x86_64 panic stops every other processor 2026-10-25 00:50:50 +02:00
core panic stops every other processor 2026-10-25 00:50:50 +02:00
dev display: confirm a resolution change, and size the console font to the screen 2026-10-24 23:11:22 +02:00
drivers i2c-hid: the touchpad crash was a printf format, not the driver 2026-10-25 00:28:23 +02:00
fs kernel: syscalls get the whole kernel stack 2026-10-24 21:17:02 +02:00
net kernel: HTTPS through wget, half-close, and /proc/<pid>/fd 2026-10-24 20:28:03 +02:00
proc kernel: HTTPS through wget, half-close, and /proc/<pid>/fd 2026-10-24 20:28:03 +02:00
scff SCFF: the live root ships compressed, with Xorg and Window Maker 2026-10-24 21:17:31 +02:00
sys X gets a VT: keyboard, terminal switching, and a way out 2026-10-24 21:45:50 +02:00
kernel.ld kernel: load at 16 MB, clear of what firmware keeps low 2026-10-24 00:13:53 +02:00