On Thu, Oct 21, 2010 at 01:00:37PM -0500, Christoph Lameter wrote: > Add a field node to struct shrinker that can be used to indicate on which > node the reclaim should occur. The node field also can be set to NUMA_NO_NODE > in which case a reclaim pass over all nodes is desired. > > NUMA_NO_NODE will be used for direct reclaim since reclaim is not specific > there (Some issues are still left since we are not respecting boundaries of > memory policies and cpusets). > > A node will be supplied for kswap and zone reclaim invocations of zone reclaim. > It is also possible then for the shrinker invocation from mm/memory-failure.c > to indicate the node for which caches need to be shrunk. > > After this patch it is possible to make shrinkers node aware by checking > the node field of struct shrinker. If a shrinker does not support per node > reclaim then it can still do global reclaim. Again, I really think it needs to be per zone. Something like inode cache could still have lots of allocations in ZONE_NORMAL with plenty of memory free there, but a DMA zone shortage could cause it to trash the caches. Did you dislike my proposed API? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>