On Tue, Apr 09, 2013 at 12:13:59PM +0100, Mel Gorman wrote: > On Tue, Apr 09, 2013 at 03:53:25PM +0900, Joonsoo Kim wrote: > > > I think that outside of zone loop is better place to run shrink_slab(), > > because shrink_slab() is not directly related to a specific zone. > > > > This is true and has been the case for a long time. The slab shrinkers > are not zone aware and it is complicated by the fact that slab usage can > indirectly pin memory on other zones. ...... > > And this is a question not related to this patch. > > Why nr_slab is used here to decide zone->all_unreclaimable? > > Slab is not directly associated with a slab but as reclaiming slab can > free memory from unpredictable zones we do not consider a zone to be > fully unreclaimable until we cannot shrink slab any more. This is something the numa aware shrinkers will greatly help with - instead of being a global shrink it becomes a node-the-zone-belongs-to shrink, and so.... > You may be thinking that this is extremely heavy handed and you're > right, it is. ... it is much less heavy handed than the current code... > > nr_slab is not directly related whether a specific zone is reclaimable > > or not, and, moreover, nr_slab is not directly related to number of > > reclaimed pages. It just say some objects in the system are freed. > > > > All true, it's the indirect relation between slab objects and the memory > that is freed when slab objects are reclaimed that has to be taken into > account. Node awareness within the shrinker infrastructure and LRUs make the relationship much more direct ;) Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>