usched questions and a patch
I've got a question about the TAILQ_ENTRY(lwp) lwp_procq in struct lwp - why
isn't it a part of lwp_usdata union? Isn't it a usched-dependent data? What
if a different usched wants to hold its lwps in e.g. red-black tree or a
Another thing I noticed is that usched_set() syscall does not zero the
content of lwp_usdata which makes impossible for the newly selected usched
to distinguish between an lwp it already had on its queue/tree/whatever and
had already put some data into its lwp_usdata, and a 'new' lwp it will get in
the following call to acquire_curproc() from userexit() IIRC.
What do You think about the attached patch?
And one more thing - what do You think about adding another usched API call,
e.g. exiting_curproc() called from exit1() instead of release_curproc() so
that a usched could (1) actually trace lwps during their lifetime and
(2) differentiate between lwps 'only' going into kernel and the ones that do