On Thu, 4 Oct 2007, Jeff Roberson wrote: > On Thu, 4 Oct 2007, Daniel Eischen wrote: > >> On Thu, 4 Oct 2007, Jeff Roberson wrote: >> >>> >>> I believe I have fixed this bug in the enclosed patch. It is rooted from >>> /usr/src/sys so you should cd there to apply it. >> >> This doesn't break realtime threads doing a sched_yield() does >> it? I couldn't easily see how the priority gets set back into >> the realtime class range. But then, maybe I'm a dummy ;-) > > Well the historical behavior was for sched_yield() to not adjust priorities. > It just requeues at the back of the queue for that priority. Xu changed this > in 7.0 but he didn't answer my mail as to why. We have a yield() call that > does drop to the max timeshare priority, however, it doesn't seem to have a > man page. > > The code removed was this: > > - if (td->td_pri_class == PRI_TIMESHARE) > - sched_prio(td, PRI_MAX_TIMESHARE); > > > So it really only effected timesharing threads. As I read the change, now it affects real-time (which is the desired behavior since it is a POSIX real-time extension). But it should have POSIX-defined behavior, which is to requeue at the back of the queue for that priority. -- DEReceived on Thu Oct 04 2007 - 23:32:16 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:18 UTC