Re: [RFC][PATCH][2.6.6] Replacing CPU scheduler active and expired with a single array

From: Con Kolivas
Date: Sun May 30 2004 - 07:57:24 EST


On Sun, 30 May 2004 10:19, Peter Williams wrote:
> Out of interest, what was the reason? What problem were you addressing?

The interactive credit?

There was a problem with difficulty elevating back to interactive state if an
interactive task had used too long a burst of cpu (ie Xfree) which was
addressed by making the bonus pseudo-exponentially curved for rapid recovery
and slow decay - in fact this is probably the most important part of
addressing the interactive tasks and had the best effect. The problem was
that giving this to all tasks meant that cpu bound tasks that had, as a
property of their behaviour, long waits on say pipes or i/o would also get
this rapid recovery to interactive state and as soon as they became fully
bound to cpu again they would cause noticable stalls. The standard example is
the increasing number of jobs in a make, where each job waits longer for i/o
as the job numbers increase. However there were much worse examples at even
normal - low loads, such as mpeg or divx encoding where the encoder would
buffer say 250 frames sleeping and then do them in a burst. (this is the
maximum space between key [I] frame or intervals). The interactive credit
prevented those tasks that would have long but only infrequent sleeps from
getting the curved bonus/penalty.

Hmm... if this is black magic I guess I'm breaking the magician's cardinal
rules and revealing my tricks ;-)

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