[LWN Logo]

Date:   Thu, 29 Jul 1999 09:11:39 -0600
From:   yodaiken@chelm.cs.nmt.edu
To:     Pavel Machek <pavel@bug.ucw.cz>
Subject: Re: low priority soft RT?

On Thu, Jul 29, 1999 at 12:50:44AM +0200, Pavel Machek wrote:
> > I'm one of those old fashioned people who thinks that a deadlock 
> > with an upper bound is much better than one without.
> 
> Yes, but if you extended your range, you would have "deadlock with
> upperbound of minute" situation, which is very bad, also.

You can't have a free lunch. If you want very relaxed scheduling so that
you don't waste a precious 5% of cpu time on background processes, and
you also want to heavily load the system so there is a strong chance
of conflicting resource requests, and you refuse to use the
obvious user mode solutions,  then you better accept high latencies.

Consider the problem we are trying to solve: it's a ridiculous problem.
Problem:
Too much cpu time spent on non-essential background tasks.
Solution space 1:
Solution1: Don't run them.
Solution2: Kill them when you need to run something else.
Solution3: use a "worthless task" daemon to suspend and restart
           worthless tasks depending on whether or not the system 
           is idle.
Solution4: buy a faster processor or add another node to your beowulf.
Solution5: run NT for a week and then when you go back to Linux the
           5% won't bother you.

etc.
--------------------
Solution space 2:

Add a new scheduling class to the basic system process model and then 
flounder around with all the deadlocks, performance hits, and 
conceptual mess that this addition has caused.


> > But  SCHED_RR is a problem on its own, is it not?
> > 
> > setsched(SCHED_RR)
> > while(i < 100 ){ 
> >                     g = g+1;
> >                    /* oops, I forgot to increment i*/
> >                 }
> > 
> > And inetd never runs again.
> 
> No. There's currently trick to disable high-priority rt process using
> one normal process grabbing lock and one low-priority rt process
> eating all cpu time. Not good, also.

What's the trick? If I try this program on a uni-processor, the entire
system locks up. No problem on a dual though.

The assumption that every process will make progress in kernel mode
is everywhere in Unix kernels. If you break that assumption, then you
will have a snowballing need for all sorts of junk to keep the 
system running. 



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/