PR: 289204
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
See my comment in PR 289204: I think this isn't sufficient since it won't catch kernel thread exits (i.e., those which go through kthread_exit()).
Comment Actions
geom: only set TDP_GEOM for user threads For kernel threads, ASTs are not handled at all, so there is no reason to expect that g_waitidle() would be called through AST scheduling.
sys/kern/kern_thr.c | ||
---|---|---|
351 | Further we go down the thread exit path, more locks we acquire: process lock, thread lock, process spin lock. I mean that ASTs must be handled before we start doing that, since it is not possible to temporary drop the acquired locks. | |
358 | For UFS SU AST, I was careful enough to not schedule it for kthreads. I think it is better to keep ast_kclear() in destructor, to have the last line of defense against AST leak over the struct thread reallocation from exiting thread to a new thread, and to maintain AST as a generic async call mechanism. |