⬢ DragonFlyBSD Kernel Audit
DF-4842 / run_fixed_slowbody.log
← back to finding ↓ download raw
# DF-4842 fix-validation, slow-body variant (patched drm.ko+amdgpu.ko, module
# with the accidental non-volatile-ticks infinite spin still present).
# Shows the PATCHED kthread_stop demonstrably WAITS for the body instead of
# freeing the live thread after its old fixed 1s: kt_done never became 1 (body
# stuck in its spin), kthread_stop blocked for its 120s safety timeout and
# drm_sched_fini then returned -- NO panic, NO lwkt_free_thread of the
# TDF_RUNNING td (baseline: 'panic: ... lwkt_free_thread' at +1s).
# (The subsequent ssh loss was the PoC's own forever-spinning thread starving
# its CPU -- a PoC artifact fixed afterwards by the volatile ticks read.)

[DF4842] test1 (case B): scheduler thread busy in run_job() when drm_sched_fini() runs
[DF4842] sched thread: task=0xfffff800897a5280 dfly_td=0xfffff8008e100700 cpu=1
[DF4842] run_job(job=0xfffff800897a5300): entered on td=0xfffff8008e100700 cpu=1 - now BUSY-SPINNING 4s (no blocking: td stays TDF_RUNNING)
[DF4842] calling drm_sched_fini(): kthread_stop sets SHOULD_STOP, tsleeps its FIXED 1s, then lwkt_free_thread() on the still-TDF_RUNNING td 0xfffff8008e100700 -> expect KKASSERT panic
[DF4842] drm_sched_fini RETURNED (no panic?!)          <-- +120s: wait-loop timeout path; baseline panicked at +1s
(console ends; guest otherwise alive ~2 more minutes until the PoC's own
 infinite spin starved cpu1 -- see VERDICT.md)