• KAMEZAWA Hiroyuki's avatar
    memcg: remove PCG_CACHE page_cgroup flag · b2402857
    KAMEZAWA Hiroyuki authored
    We record 'the page is cache' with the PCG_CACHE bit in page_cgroup.
    Here, "CACHE" means anonymous user pages (and SwapCache).  This doesn't
    include shmem.
    
    Considering callers, at charge/uncharge, the caller should know what the
    page is and we don't need to record it by using one bit per page.
    
    This patch removes PCG_CACHE bit and make callers of
    mem_cgroup_charge_statistics() to specify what the page is.
    
    About page migration: Mapping of the used page is not touched during migra
    tion (see page_remove_rmap) so we can rely on it and push the correct
    charge type down to __mem_cgroup_uncharge_common from end_migration for
    unused page.  The force flag was misleading was abused for skipping the
    needless page_mapped() / PageCgroupMigration() check, as we know the
    unused page is no longer mapped and cleared the migration flag just a few
    lines up.  But doing the checks is no biggie and it's not worth adding
    another flag just to skip them.
    
    [akpm@linux-foundation.org: checkpatch fixes]
    [hughd@google.com: fix PageAnon uncharging]
    Signed-off-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Ying Han <yinghan@google.com>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b2402857
memcontrol.c 143 KB