DF-5728 — kernel stack guard double-fault frames (both reproductions, stock kernel) === RUN 1 (depth 60, sysctl/thread-context DDB entry, CPU1) === DOUBLE FAULT - KERNEL STACK GUARD HIT! Fatal double fault rip = 0xffffffff802ca73c db_unary+0xc (nm: ffffffff802ca730 t db_unary) rsp = 0xfffff801184cf000 page-aligned -> 16 KB kstack guard page rbp = 0xfffff801184cf008 cpuid = 1; lapic id = 1 panic: double fault cpuid = 1 Trace beginning at frame 0xfffff8004f06cec8 dblfault_handler() at dblfault_handler+0x10c 0xffffffff80bd682c dblfault_handler() at dblfault_handler+0x10c 0xffffffff80bd682c boot() called on cpu#1 Uptime: 1m8s Dumping 570 MB ... Dump complete Preceding session (same run): p (1+(2*3)) -> 7 (evaluator sane) p ((( x30 ... 1 -> Syntax error, db> returns (30 levels = 8.2 KB: survives) p ((( x60 ... 1 -> DOUBLE FAULT (above) (16.3 KB) === RUN 2 (depth 40, fresh boot, CPU3) === DOUBLE FAULT Fatal double fault rip = 0xffffffff802cba0c db_force_whitespace+0xc (nm: ffffffff802cba00 T) rsp = 0xfffff80117e77000 page-aligned -> kstack guard page rbp = 0xfffff80117e77008 cpuid = 3; lapic id = 3 panic: double fault cpuid = 3 Trace beginning at frame 0xfffff80089631ec8 dblfault_handler() at dblfault_handler+0x10c 0xffffffff80bd682c dblfault_handler() at dblfault_handler+0x10c 0xffffffff80bd682c boot() called on cpu#3 Uptime: 21s Dumping 677 MB ... Dump complete (wedge followup: "Warning: thread switch from interrupt..." for thread (sysctl)) Frame budget (measured from /boot/kernel/kernel objdump): per '(' level = db_term(32) + db_expression(16) + db_shift_expr(64) + db_add_expr(64) + db_mult_expr(64) + db_unary(32) = 272 B 30 levels = 8.2 KB 40 = 10.9 KB 60 = 16.3 KB 118 = 32.1 KB kstack = UPAGES(4) * PAGE_SIZE = 16 KB + guard page