Re: O(1) Scheduler (tuning problem/live-lock)

From: Jim Houston (jim.houston@ccur.com)
Date: Thu Oct 03 2002 - 00:50:34 EST


Hi Andrea, Ingo,

Andrea, I tried your second patch. Again, it keeps on running even with
"waitpid06 -c 16 -i 10000". This is good. It still has some jerky
mouse behavior (under this load). This is on an old slow Pentium Pro
dual processor. If I grab a window and move it around for several
seconds, the screen will freeze for a couple seconds. I suspect that
my X server fails the TASK_INTERACTIVE test.

I have been hacking at sched.c myself trying to avoid the array switch
entirely. I'm trying to set up a self-tuning feedback mechanism to
adjust priorities so everything gets some cpu time without
having to do the array switch. I'm juggling these ideas:

        1. Gradually raise the priority of all the processes in
           the run queue. Do this without having to visit all
           of the processes.

        2. When a process uses up its time slice, move it to a
           less favorable priority.

        3. Tune the sleep_avg. I like the old decaying average
           approach of old unix systems. The current sleep_avg
           goes to saturation too often. I would like to
           be able to tell if a process has been using more than
           its share of the cpu time.

        4. Make the maximum time slice decrease with more favorable
           priorities. The time slice would depend on the dynamic
           priority.

I have code hacked together for first idea but its not useful without
the rest.

Jim Houston - Concurrent Computer Corp.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 07 2002 - 22:00:37 EST