[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fairness in love and swapping



On Thu, 26 Feb 1998, Rogier Wolff wrote:

>           0        50           51      100
>       P1  <in memory>...........<in memory> 
> 
>           0          1        50           51      100
>       P2  ...........<in memory>...........<in memory> 

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)
- wake up the suspended process after some time (2 seconds
  per megabyte size?) and mark the process as just-suspended
  (and don't swap it out again for a guaranteed 1 second *
  megabyte size period)
- if necessary, suspend & swap another large process when
  we're short on memory again

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

Of course, I'm quite sure that I forgot something,
so please comment on how/what you want things changed.

Rik.
+-----------------------------+------------------------------+
| For Linux mm-patches, go to | "I'm busy managing memory.." |
| my homepage (via LinuxHQ).  | H.H.vanRiel@fys.ruu.nl       |
| ...submissions welcome...   | http://www.fys.ruu.nl/~riel/ |
+-----------------------------+------------------------------+