Re: ia64 needs to shake memory from quicklists when there is memory pressure.

From: Andrew Morton <akpm_at_osdl.org>
Date: 2005-03-15 08:39:52
Robin Holt <holt@sgi.com> wrote:
>
> > > The "ideal" would be to have a node aware slab cache.  Since that
>  > > is probably a long time coming, I was wondering if there would be
>  > > any possibility of getting some sort of hook into wakeup_kswapd(),
>  > > kswapd(), or balance_pgdat().  Since the quicklists are maintained per
>  > > cpu, we would need to perform an smp_call_function_single() for other
>  > > cpus on this node.  Is there some mechanism in place already to handle
>  > > anything similar to this?  Is there a better way to accomplish this?
>  > > Can you offer any suggestions?
>  > > 
>  > 
>  > Suggest you hook into the existing set_shrinker() API.
>  > 
>  > Then, in the shrinker callback, perform reclaim of the calling CPU's
>  > node's pages.
>  > 
>  > Try to return the right numbers from the shrinker callback so that
>  > shrink_slab() will keep this cache balanced wrt all the other ones which it
>  > is managing.
> 
>  I wedged a shrinker in which simply does a smp_call_function() to invoke
>  the cache shrinker.  I did modify the shrinker function to return the
>  number of pages freed, but am currently doing nothing with it as this
>  will require a spinlock/atomic operation and am not ready to take that
>  performance hit.  The one issue I have is we lose information about
>  which nodes to shake memory from and therefore end up calling the function
>  for every node in the system.  This appears very heavy handed.

As I said, "in the shrinker callback, perform reclaim of the calling CPU's
node's pages.".  kswapd is already node-affine, as are callers of
try_to_free_pages().

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Mon Mar 14 16:46:52 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:36 EST