lkml.org 
[lkml]   [2014]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 02/14] cgroup: remove pointless has tasks/children test from mem_cgroup_force_empty()
    Hello,

    On Mon, May 12, 2014 at 04:53:24PM +0200, Michal Hocko wrote:
    > What do you think about the following patch instead:

    As long as the direct ->children dereference is gone, I have no
    objection and yes the knob's purpose seems weird at best.

    > ---
    > From 03f8cb2e1fd2636d859c54df9b58719fe96e0e54 Mon Sep 17 00:00:00 2001
    > From: Michal Hocko <mhocko@suse.cz>
    > Date: Mon, 12 May 2014 16:34:17 +0200
    > Subject: [PATCH] memcg: remove tasks/children test from from
    > mem_cgroup_force_empty
    >
    > Tejun has correctly pointed out that tasks/children test in
    > mem_cgroup_force_empty is not correct because there is no other locking
    > which preserves this state throughout the rest of the function so both
    > new tasks can join the group or new children groups can be added while
    > somebody is writing to memory.force_empty. A new task would break
    > mem_cgroup_reparent_charges expectation that all failures as described
    > by mem_cgroup_force_empty_list are temporal and there is no way out.
    >
    > The main use case for the knob as described by
    > Documentation/cgroups/memory.txt is to:
    > "
    > The typical use case for this interface is before calling rmdir().
    > Because rmdir() moves all pages to parent, some out-of-use page caches can be
    > moved to the parent. If you want to avoid that, force_empty will be useful.
    > "
    >
    > This means that reparenting is not really required as rmdir will
    > reparent pages implicitly from the safe context. If we remove it from
    > mem_cgroup_force_empty then we are safe even with existing tasks because
    > the number of reclaim attempts is bounded. Moreover the knob still does
    > what the documentation claims (modulo reparenting which doesn't make any
    > difference) and users might expect. Longterm we want to deprecate the
    > whole knob and put the reparented pages to the tail of parent LRU during
    > cgroup removal.
    >
    > Signed-off-by: Tejun Heo <tj@kernel.org>
    > Signed-off-by: Michal Hocko <mhocko@suse.cz>

    Can I roll this into my series so that I can put this before changes
    which depend on direct ->children usages being removed?

    Thanks.

    --
    tejun


    \
     
     \ /
      Last update: 2014-05-12 17:41    [W:4.225 / U:0.312 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site