lkml.org 
[lkml]   [2012]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 7/10] mm/memcg: remove mem_cgroup_reset_owner
    On Mon, 20 Feb 2012 15:35:38 -0800 (PST)
    Hugh Dickins <hughd@google.com> wrote:

    > With mem_cgroup_reset_uncharged_to_root() now making sure that freed
    > pages point to root_mem_cgroup (instead of to a stale and perhaps
    > long-deleted memcg), we no longer need to initialize page memcg to
    > root in those odd places which put a page on lru before charging.
    > Delete mem_cgroup_reset_owner().
    >
    > But: we have no init_page_cgroup() nowadays (and even when we had,
    > it was called before root_mem_cgroup had been allocated); so until
    > a struct page has once entered the memcg lru cycle, its page_cgroup
    > ->mem_cgroup will be NULL instead of root_mem_cgroup.
    >
    > That could be fixed by reintroducing init_page_cgroup(), and ordering
    > properly: in future we shall probably want root_mem_cgroup in kernel
    > bss or data like swapper_space; but let's not get into that right now.
    >
    > Instead allow for this in page_relock_lruvec(): treating NULL as
    > root_mem_cgroup, and correcting pc->mem_cgroup before going further.
    >
    > What? Before even taking the zone->lru_lock? Is that safe?
    > Yes, because compaction and lumpy reclaim use __isolate_lru_page(),
    > which refuses unless it sees PageLRU - which may be cleared at any
    > instant, but we only need it to have been set once in the past for
    > pc->mem_cgroup to be initialized properly.
    >
    > Signed-off-by: Hugh Dickins <hughd@google.com>

    Ok, this seems to be much better than current reset_owner().

    Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

    Thanks,
    -Kame




    \
     
     \ /
      Last update: 2012-02-21 10:21    [W:0.041 / U:1.400 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site