[case closed] Re: web page on O(1) scheduler

From: Mike Galbraith (efault@gmx.de)
Date: Tue May 27 2003 - 10:15:26 EST


At 06:25 PM 5/22/2003 +0200, Mike Galbraith wrote:
At 11:52 AM 5/22/2003 +0200, Mike Galbraith wrote:
At 10:56 AM 5/21/2003 -0700, David Mosberger wrote:
>>>>> On Wed, 21 May 2003 11:26:31 +0200, Mike Galbraith <efault@xxxxxx> said:

Mike> The page mentions persistent starvation. My own explorations
Mike> of this issue indicate that the primary source is always
Mike> selecting the highest priority queue.

My working assumption is that the problem is a bug with the dynamic
prioritization. The task receiving the signals calls sleep() after
handling a signal and hence it's dynamic priority should end up higher
than the priority of the task sending signals (since the sender never
relinquishes the CPU voluntarily).

However, I haven't actually had time to look at the relevant code, so
I may be missing something. If you understand the issue better,
please explain to me why this isn't a dynamic priority issue.

You're right, it looks like a corner case.

Out of curiosity, is someone hitting that with a real program?

-Mike

aside:
if so, I suppose nano-ticks may be needed....

Since I spent a bunch of time fumbling around with this problem, I may as well post one last time and put it to bed. I bet Ingo has a _lot_ better way to cure that problem, but...

Yes indeed, pedantic tracking of cpu usage does fix the problem. It also makes for some interesting changes in contest numbers (well, _I_ find them interesting;) If anyone wants to see the numbers, they're attached. If anyone wants to try the attached diff, it's attached too, have fun... the standard "you get to keep the pieces" lkml warrantee applies :) FWIW, it works just fine here, and the only time someone now manages to steal ticks (one) is (apparently) once in a long while when someone (whose initials appear to be IDE:) keeps interrupts disabled for too long. Nobody has yet managed to steal more than one tick.

The End,

-Mike

P.S. ok, so they're micro-ticks... what's a few orders of magnitude :)

Attachment: xx.diff
Description: Binary data

Attachment: contest.log
Description: Binary data