ULE/yielding patch for testing.

Jeff Roberson jroberson at chesapeake.net
Thu Oct 4 18:24:26 PDT 2007


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.

Jeff

>
> -- 
> DE
>


More information about the freebsd-current mailing list