• Rik van Riel's avatar
    [PATCH] token based thrashing control · d4f9d02b
    Rik van Riel authored
    The following experimental patch implements token based thrashing
    protection, using the algorithm described in:
    
    	http://www.cs.wm.edu/~sjiang/token.htm
    
    When there are pageins going on, a task can grab a token, that protects the
    task from pageout (except by itself) until it is no longer doing heavy
    pageins, or until the maximum hold time of the token is over.
    
    If the maximum hold time is exceeded, the task isn't eligable to hold the
    token for a while more, since it wasn't doing it much good anyway.
    
    I have run a very unscientific benchmark on my system to test the
    effectiveness of the patch, timing how a 230MB two-process qsbench run
    takes, with and without the token thrashing protection present.
    
    normal 2.6.8-rc6:	6m45s
    2.6.8-rc6 + token:	4m24s
    
    This is a quick hack, implemented without having talked to the inventor of
    the algorithm.  He's copied on the mail and I suspect we'll be able to do
    better than my quick implementation ...
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    d4f9d02b
memory.c 47.3 KB