Re: Fairness in love and swapping

Stephen C. Tweedie (sct@dcs.ed.ac.uk)
Thu, 26 Feb 1998 22:41:26 GMT


Hi,

On Thu, 26 Feb 1998 15:30:25 +0100 (MET), Rik van Riel
<H.H.vanRiel@fys.ruu.nl> said:

> Now, how do we select which processes to suspend temporarily
> and which to wake up again...
> Suspending X wouldn't be to good, since then a lot of other
> procesess would block on it... But this gives us a good clue
> as to what to do.

> We could:
> - force-swap out processes which have slept for some time
> - suspend & force-swap out the largest process
> - wake it up again when there are two proceses waiting on
> it (to prevent X from being swapped out)

Define the number of processes waiting on a given process?

Another way of making the distinction between batch and interactive
processes might be to observe that interactive processes spend some of
their time in "S" (interruptible sleep) state, whereas we expect
compute-bound jobs to be in "R" or "D" state most of the time.
However, that breaks down too when you consider batch jobs involving
pipelines, such as gcc -pipe.

> Doing this together with a dynamic RSS-limit strategy and
> page cache page aging might give us quite an improvement
> in VM performance.

Yes, and doing streamed writeahead and clustered swapin will up the
throughput to/from swap quite significantly too.

Cheers,
Stephen.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu