# wchan proof during the first hang (pre-reset guest, pid 872 = guard_probe child in CONS_SET): # PID STAT WCHAN COMMAND # 872 I1 scrsav /tmp/guard_probe # post-kill wedge (second hang, pid 932 = 'vidcontrol -p' reaching a saver-stop wait): # 932 I1 scrsav vidcontrol -p # 'scrsav' is the tsleep channel string of wait_scrn_saver_stop() only (syscons.c:2727/2734). # # /dev/kmem statics while wedged (kread.c): scrn_blanked = 1 <- STUCK (never returns to 0) scrn_blank_time = 0 saver_mode = 0 (CONS_LKM_SAVER) current_saver = 0x80b8afe0 (non-NULL, scsplash_saver) # sc_softc flags via scread.c (sc_console->sc at 0xffffffff81b25700): sc->flags = 0x100030040 SC_SCRN_BLANKED(0x40) SET <- stuck SC_SCRN_IDLE(0x20) clear SC_SAVER_FAILED(0x80) clear sc->cur_scp == sc_console (ttyv0 active) # kldunload snake_saver while wedged: hangs (timeout RC=124); module permanently EBUSY.