[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.022 / U:54.596 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site