• K
    memcg: remove a redundant check · accf163e
    KAMEZAWA Hiroyuki 提交于
    Because of remove refcnt patch, it's very rare case to that
    mem_cgroup_charge_common() is called against a page which is accounted.
    
    mem_cgroup_charge_common() is called when.
     1. a page is added into file cache.
     2. an anon page is _newly_ mapped.
    
    A racy case is that a newly-swapped-in anonymous page is referred from
    prural threads in do_swap_page() at the same time.
    (a page is not Locked when mem_cgroup_charge() is called from do_swap_page.)
    
    Another case is shmem. It charges its page before calling add_to_page_cache().
    Then, mem_cgroup_charge_cache() is called twice. This case is handled in
    mem_cgroup_cache_charge(). But this check may be too hacky...
    
    Signed-off-by : KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Balbir Singh <balbir@in.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Hugh Dickins <hugh@veritas.com>
    Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
    Cc: Paul Menage <menage@google.com>
    Cc: David Rientjes <rientjes@google.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    accf163e
memcontrol.c 28.8 KB