Re: shrinkers: Add node to indicate where to target shrinking

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

 



> On Fri, Oct 22, 2010 at 11:32:37AM -0500, Christoph Lameter wrote:
> > On Fri, 22 Oct 2010, Christoph Hellwig wrote:
> > >
> > > I think making shrinking decision per-zone is fine.  But do we need to
> > > duplicate all the lru lists and infrastructure per-zone for that instead
> > > of simply per-zone?   Even with per-node lists we can easily skip over
> > > items from the wrong zone.
> > >
> > > Given that we have up to 6 zones per node currently, and we would mostly
> > > use one with a few fallbacks that seems like a lot of overkill.
> > 
> > Zones can also cause asymmetry in reclaim if per zone reclaim is done.
> > 
> > Look at the following zone setup of a Dell R910:
> > 
> > grep "^Node" /proc/zoneinfo
> > Node 0, zone      DMA
> > Node 0, zone    DMA32
> > Node 0, zone   Normal
> > Node 1, zone   Normal
> > Node 2, zone   Normal
> > Node 3, zone   Normal
> > 
> > A reclaim that does per zone reclaim (but in reality reclaims all objects
> > in a node (or worse as most shrinkers do today in the whole system) will
> > put 3x the pressure on node 0.
> 
> No it doesn't. This is how it works:
> 
> node0zoneD has 1% of pagecache for node 0
> node0zoneD32 has 9% of pagecache
> node0zoneN has 90% of pagecache
> 
> If there is a memory shortage in all node0 zones, the first zone will
> get 1% of the pagecache scanning pressure, dma32 will get 9% and normal
> will get 90%, for equal pressure on each zone.
> 
> In my patch, those numbers will pass through to shrinker for each zone,
> and ask the shrinker to scan and equal proportion of objects in each of
> its zones.
> 
> If you have a per node shrinker, you will get asymmetries in pressures
> whenever there is not an equal amount of reclaimable objects in all
> the zones of a node.

Interesting. your explanation itself seems correct. but it inspire me
that there is another issue in both Christoph and your patch.

On ideal 32bit highmem system, memory usage are

	DMA:	unused
	NORMAL:	100% slab, 0% page cache
	HIGHMEM: 0% slab, 100% page cache

So, per-zone slab/page-cache shrinker balancing logic don't works on
32bit x86. kswapd should reclaim some objects from normal zone even if
it couldn't reclaim any page cache from normal zone.



--
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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]