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

From: Robin Holt <holt_at_sgi.com>
Date: 2005-03-10 04:09:15

I am searching for some direction.  I am in the process of pushing
changes to the ia64 page table cache (quicklist) code.  One result of
the changes is I end up changing the algorithm for freeing pages from
the quicklist being based on a boot-time calculation of a percentage of
total system memory to a percentage of memory free on the node (whole
system for non-numa) at the time the shrink call is made.

Right now, there are two places that the shrink is invoked.  One is
from the tlb_finish_mmu() code which would be immediately after the only
place that items are added to the list.  The other is from cpu_idle which
appears to be a carry over from when x86 code was pulled over to ia64.
The purpose for that appears to have been making the sysctl (which has
been removed) take effect in situations where a cpu is never calling

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?

Robin Holt

PS:  Some relevant links.
Discuss the shrink issues:

The code change to do the free.
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 Wed Mar 9 12:11:52 2005

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