• Shakeel Butt's avatar
    memcg: expose root cgroup's memory.stat · 54b512e9
    Shakeel Butt authored
    One way to measure the efficiency of memory reclaim is to look at the
    ratio (pgscan+pfrefill)/pgsteal.  However at the moment these stats are
    not updated consistently at the system level and the ratio of these are
    not very meaningful.  The pgsteal and pgscan are updated for only global
    reclaim while pgrefill gets updated for global as well as cgroup
    reclaim.
    
    Please note that this difference is only for system level vmstats.  The
    cgroup stats returned by memory.stat are actually consistent.  The
    cgroup's pgsteal contains number of reclaimed pages for global as well
    as cgroup reclaim.  So, one way to get the system level stats is to get
    these stats from root's memory.stat, so, expose memory.stat for the root
    cgroup.
    
    From Johannes Weiner:
    	There are subtle differences between /proc/vmstat and
    	memory.stat, and cgroup-aware code that wants to watch the full
    	hierarchy currently has to know about these intricacies and
    	translate semantics back and forth.
    
    	Generally having the fully recursive memory.stat at the root
    	level could help a broader range of usecases.
    
    Why not fix the stats by including both the global and cgroup reclaim
    activity instead of exposing root cgroup's memory.stat? The reason is
    the benefit of having metrics exposing the activity that happens purely
    due to machine capacity rather than localized activity that happens due
    to the limits throughout the cgroup tree.  Additionally there are
    userspace tools like sysstat(sar) which reads these stats to inform
    about the system level reclaim activity.  So, we should not break such
    use-cases.
    Suggested-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarShakeel Butt <shakeelb@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Acked-by: default avatarYafang Shao <laoar.shao@gmail.com>
    Acked-by: default avatarChris Down <chris@chrisdown.name>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Link: http://lkml.kernel.org/r/20200508170630.94406-1-shakeelb@google.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    54b512e9
memcontrol.c 188 KB