On 15.03.2018 20:49, Michal Hocko wrote: > On Thu 15-03-18 18:01:34, Kirill Tkhai wrote: >> xfs_reclaim_inodes_count(XFS_M(sb)) does not care about memcg. >> So, it's called for memcg reclaim too, e.g. this list is shrinked >> disproportionality to another lists. >> >> This looks confusing, so I'm reporting about this. >> Consider this patch as RFC. > > Could you be more specific about the problem you are trying to solve? > Because we do skip shrinkers which are not memcg aware by > shrink_slab: > /* > * If kernel memory accounting is disabled, we ignore > * SHRINKER_MEMCG_AWARE flag and call all shrinkers > * passing NULL for memcg. > */ > if (memcg_kmem_enabled() && > !!memcg != !!(shrinker->flags & SHRINKER_MEMCG_AWARE)) > continue; > > Or am I missing something? sb->s_op->nr_cached_objects is a sub-method of generic super_cache_count(). super_cache_count() is owned and only called by superblock's shrinker, which does have SHRINKER_MEMCG_AWARE flag. > >> Signed-off-by: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> >> --- >> fs/xfs/xfs_super.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c >> index 951271f57d00..124568aefa94 100644 >> --- a/fs/xfs/xfs_super.c >> +++ b/fs/xfs/xfs_super.c >> @@ -1788,6 +1788,8 @@ xfs_fs_nr_cached_objects( >> struct super_block *sb, >> struct shrink_control *sc) >> { >> + if (sc->memcg) >> + return 0; >> return xfs_reclaim_inodes_count(XFS_M(sb)); >> } >> > -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html