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

Jim Houston (jim.houston@ccur.com)
Thu, 03 Oct 2002 01:50:34 -0400


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/