[DF4842] test1 (case B): scheduler thread busy in run_job() when drm_sched_fini() runs [DF4842] sched thread: task=0xfffff800897a5080 dfly_td=0xfffff800905fc100 cpu=1 [DF4842] run_job(job=0xfffff800897a5180): entered on td=0xfffff800905fc100 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 0xfffff800905fc100 -> expect KKASSERT panic panic: assertion "(td->td_flags & (TDF_RUNNING | TDF_PREEMPT_LOCK | TDF_RUNQ | TDF_TSLEEPQ | TDF_KERNELFP)) == 0" failed in lwkt_free_thread at /usr/src/sys/kern/lwkt_thread.c:514 cpuid = 0 Trace beginning at frame 0xfffff801182ef708 lwkt_free_thread() at lwkt_free_thread+0x119 0xffffffff80672639 lwkt_free_thread() at lwkt_free_thread+0x119 0xffffffff80672639 kthread_stop() at kthread_stop+0xb4 0xffffffff86824ac4 sysctl_df4842_test() at sysctl_df4842_test+0x1e7 0xffffffff873bc467 sysctl_root.isra.5() at sysctl_root.isra.5+0x166 0xffffffff80683d06 userland_sysctl() at userland_sysctl+0x111 0xffffffff806840a1 Debugger("panic") CPU0 stopping CPUs: 0x0000003e stopped Stopped at Debugger+0x7c: movb $0,0xbdaf09(%rip) db>