[DF4842] test2 (case A): idle sched thread exits fast; td parked in gd_freetd AND objcache_put by kthread_stop [DF4842] round 1: sched thread td=0xfffff800905fd480 on cpu=1; calling drm_sched_fini() (kthread_stop: 1s tsleep + lwkt_free_thread) [DF4842] drm_sched_fini returned; sysctl cpu was 0, now 0; staging gd_freetd proof on cpu 1 [DF4842] probe: cpu=1 gd_freetd=0xfffff800905fd480 tdS=0xfffff800905fd480 -> == tdS STILL PARKED in gd_freetd (while kthread_stop already objcache_put() it into thread_cache: DOUBLE OWNERSHIP) [DF4842] launching sacrificial exit thread on cpu=1 [DF4842] sacr: exiting on cpu=1 - lwkt_exit() will now objcache_put(gd_freetd=tdS 0xfffff800905fd480) AGAIN (2nd put) [DF4842] scan(cpu=1) alloc 1: thread_cache handed out tdS 0xfffff800905fd480 — SAME struct thread in a NEW allocation while the 2nd put also sits in the cache [DF4842] scan(cpu=1): done, 1 tdS hits in 16 allocs [DF4842] round 1 result: 1 allocation hit(s) for tdS 0xfffff800905fd480 after the double put