Messages in this thread | | | Date | Wed, 10 Apr 2013 11:07:34 +1000 | From | Dave Chinner <> | Subject | Re: [PATCH 08/10] mm: vmscan: Have kswapd shrink slab only once per priority |
| |
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@fromorbit.com
| |