[lkml]   [1998]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Interesting scheduling times
I wrote:
> At the very least I'd like to see the wake_up* functions set
> need_resched=1 if an RT process is woken up. This way unblocked RT
> processes will start running immediately.
> If we do go with a special RT run queue, then the wake_up* functions
> will need to be changed anyway to put RT processes onto the RT
> runqueue.

Hm. I've dug more deeply into the source code and I notice that when a
process with policy != SCHED_OTHER is woken up, then
current->need_resched is set to 1 (this is done in
reschedulre_idle()), which I hadn't noticed before.

So (someone correct me if I'm wrong), an RT process (which has the
highest priority) which is woken up in an interrupt handler will start
running immediately upon return from the handler (provided the
interrupted process wasn't in kernel mode).
This is good.

Nevertheless, my original point: having a separate run queue for RT
processes remains. From my tests on a Pentium/MMX 200 (with SDRAM) a
thread switch takes 2 us and for each extra process on the run queue
add about 0.7 us. You only need to have 3 extra processes on the run
queue to more than double the thread switch times.



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:44    [W:0.071 / U:41.820 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site