> diff --git a/include/linux/mm.h b/include/linux/mm.h > index 7a2f657..abc13ea 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1137,16 +1137,19 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm) > struct shrink_control { > unsigned long nr_scanned; > gfp_t gfp_mask; > + > + /* How many slab objects shrinker() should reclaim */ > + unsigned long nr_slab_to_reclaim; Wrong name. The original shrinker API is int (*shrink)(struct shrinker *, int nr_to_scan, gfp_t gfp_mask); ie, shrinker get scanning target. not reclaiming target. You should have think folloing diff hunk is strange. > { > struct xfs_mount *mp; > struct xfs_perag *pag; > xfs_agnumber_t ag; > int reclaimable; > + int nr_to_scan = sc->nr_slab_to_reclaim; > + gfp_t gfp_mask = sc->gfp_mask; And, this very near meaning field .nr_scanned and .nr_slab_to_reclaim poped up new question. Why don't we pass more clever slab shrinker target? Why do we need pass similar two argument? > /* > * A callback you can register to apply pressure to ageable caches. > * > - * 'shrink' is passed a count 'nr_to_scan' and a 'gfpmask'. It should > - * look through the least-recently-used 'nr_to_scan' entries and > - * attempt to free them up. It should return the number of objects > - * which remain in the cache. If it returns -1, it means it cannot do > - * any scanning at this time (eg. there is a risk of deadlock). > + * 'sc' is passed shrink_control which includes a count 'nr_slab_to_reclaim' > + * and a 'gfpmask'. It should look through the least-recently-us us? > + * 'nr_slab_to_reclaim' entries and attempt to free them up. It should return > + * the number of objects which remain in the cache. If it returns -1, it means > + * it cannot do any scanning at this time (eg. there is a risk of deadlock). > * -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>