• Yosry Ahmed's avatar
    mm: memcg: refactor page state unit helpers · ff841a06
    Yosry Ahmed authored
    Patch series "mm: memcg: fix tracking of pending stats updates values", v2.
    
    While working on adjacent code [1], I realized that the values passed into
    memcg_rstat_updated() to keep track of the magnitude of pending updates is
    consistent.  It is mostly in pages, but sometimes it can be in bytes or
    KBs.  Fix that.
    
    Patch 1 reworks memcg_page_state_unit() so that we can reuse it in patch 2
    to check and normalize the units of state updates.
    
    [1]https://lore.kernel.org/lkml/20230921081057.3440885-1-yosryahmed@google.com/
    
    
    This patch (of 2):
    
    memcg_page_state_unit() is currently used to identify the unit of a memcg
    state item so that all stats in memory.stat are in bytes.  However, it
    lies about the units of WORKINGSET_* stats.  These stats actually
    represent pages, but we present them to userspace as a scalar number of
    events.  In retrospect, maybe those stats should have been memcg "events"
    rather than memcg "state".
    
    In preparation for using memcg_page_state_unit() for other purposes that
    need to know the truthful units of different stat items, break it down
    into two helpers:
    - memcg_page_state_unit() retuns the actual unit of the item.
    - memcg_page_state_output_unit() returns the unit used for output.
    
    Use the latter instead of the former in memcg_page_state_output() and
    lruvec_page_state_output().  While we are at it, let's show cgroup v1 some
    love and add memcg_page_state_local_output() for consistency.
    
    No functional change intended.
    
    Link: https://lkml.kernel.org/r/20230922175741.635002-1-yosryahmed@google.com
    Link: https://lkml.kernel.org/r/20230922175741.635002-2-yosryahmed@google.comSigned-off-by: default avatarYosry Ahmed <yosryahmed@google.com>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Michal Koutný <mkoutny@suse.com>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Shakeel Butt <shakeelb@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    ff841a06
memcontrol.c 204 KB