DF-5532 / run.spin.log
# DF-5532 extreme variant โ churn_ticks=0 (spin mode, first harness build) # Every callback is INSTANT (no sleep): pure self-requeue. # ---------------------------------------------------------------------------' # T+1s after kldload: kern.dfstarv.report: started_ms=1791334525529 victim_ran=0 victim_ran_ms=0 churn_count=46141778 waiter_done=0 waiter_woke_ms=0 now_ms=1791334526529 starve_ms=-1 # (46,141,778 callbacks in the first second; the waiter never even got # the lock to queue the victim โ it starved inside lockmgr; `ps` on the # guest starved as well; the ssh command hit the 120s tool timeout.) # ~200s later (guest still up at serial console, ssh dead): kern.dfstarv.report: started_ms=1791334525529 victim_ran=0 victim_ran_ms=0 churn_count=8945916268 waiter_done=0 waiter_woke_ms=0 now_ms=1791334710641 starve_ms=-1 # 8,945,916,268 callbacks โ the usb_process thread at TDPRI_INT_MED # monopolized its CPU and the usb bus lock; userland (sshd) starved. # after sysctl kern.dfstarv.stop=1: -> kern.dfstarv.report: started_ms=1791334525529 victim_ran=1 victim_ran_ms=1791334727113 churn_count=9731507200 waiter_done=1 waiter_woke_ms=1791334727113 now_ms=1791334728121 starve_ms=0 # The moment the queue could empty, victim ran and the waiter woke in # the SAME millisecond โ total starvation window 201,584 ms, of which # 274.6s was post-load uninterruptible monopolization. # Guest sshd had been starved to death; guest was reset afterwards. # # Serial console during the wedge (dfbsd-qemu/boot.log tail): # login: dfharness: loaded; churn running, waiter in usb_proc_mwait # dfharness: loaded; churn running, waiter in usb_proc_mwait # (no panic โ pure starvation wedge)