Hi Mike,
Thanks for taking the time to test my changes.
I found an irman rpm which is 2001 vintage and a broken link at:
http://people.redhat.com/bmatthews/irman/
So I'm not sure if I'm duplicating your test. If you could send me a
tar ball with the source for the irman you are running, it would help.
When I run the version of irman I have, it runs to completion, maybe a
bit slower than it should. I have some ideas why my scheduler does
badly on this test.
When I start a new process, I pick an initial priority for the new
process based on the average priority at which the system has been
running. From this I back calculate a run_avg value. If this guess
is bad, the new process may have an unfair advantage with respect to
its parent. I have been thinking of ways to fix this. One idea is
to use a shorter half-life value for processes which are recently started.
This test is an example where basing the child priority on the parent
makes sense. Perhaps I should use the parent priority if it is
lower than the rq->prio_avg value.
I guess it was wishful thinking when I titled this self tuning.
If your interested you could adjust the run_avg_halflife and/or
prio_avg_halflife to a smaller values.
It may also be a sampling problem where the period of the ping-pong
exchange is a fraction of the HZ tick, and one process is charged more
than its share of the cpu.
On the make -j30 kernel make, I intentionally reduce the timeslice
as the process priority increases. This should reduce jitter for
interactive processes. As more processes try to share the cpu they
all get higher priority and the smaller time slice. If there are
only 1-2 compute bound processes they would get 0.5 second time
slices.
I'm also curious about the hardware you are testing on.
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/