sched_ule: roundrobin_callout replacement ?

Andriy Gapon avg at icyb.net.ua
Thu Mar 6 13:40:15 UTC 2008


on 06/03/2008 14:55 John Baldwin said the following:
> On Monday 18 February 2008 10:25:13 am Andriy Gapon wrote:
>> I see that sched_4bsd has a NOP callout with a purpose of forcing a
>> context switch (via softclock), so that something like a preemption
>> could happen (e.g. for threads in a tight calculation loop).
>> What serves the similar purpose for sched_ule?
>> Or, how sched_ule deals with the issue without needing softclock's help?
> 
> It's gone in newer versions of 4BSD in HEAD actually.  ULE does it by checking 
> in sched_clock() to see if the current thread has used up its quantum.  If so 
> it sets TDF_NEEDRESCHED.
> 

Thank you. But where/when does actual thread switch happens?
E.g. I have two userland processes that do something like "while(1);",
what is the event that can switch from one to the other?

-- 
Andriy Gapon


More information about the freebsd-hackers mailing list