lkml.org 
[lkml]   [2015]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/3] cpuset: fix a warning when clearing configured masks in old hierarchy
    When we clear cpuset.cpus, cpuset.effective_cpus won't be cleared:

    # mount -t cgroup -o cpuset xxx /mnt
    # mkdir /mnt/tmp
    # echo 0 > /mnt/tmp/cpuset.cpus
    # echo > /mnt/tmp/cpuset.cpus
    # cat cpuset.cpus

    # cat cpuset.effective_cpus
    0-15

    And a kernel warning in update_cpumasks_hier() is triggered:

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 4028 at kernel/cpuset.c:894 update_cpumasks_hier+0x471/0x650()

    Cc: <stable@vger.kernel.org> # 3.17+
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    ---
    kernel/cpuset.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/kernel/cpuset.c b/kernel/cpuset.c
    index 7e9d711..29463c2 100644
    --- a/kernel/cpuset.c
    +++ b/kernel/cpuset.c
    @@ -873,7 +873,7 @@ static void update_cpumasks_hier(struct cpuset *cs, struct cpumask *new_cpus)
    * If it becomes empty, inherit the effective mask of the
    * parent, which is guaranteed to have some CPUs.
    */
    - if (cpumask_empty(new_cpus))
    + if (cgroup_on_dfl(cp->css.cgroup) && cpumask_empty(new_cpus))
    cpumask_copy(new_cpus, parent->effective_cpus);

    /* Skip the whole subtree if the cpumask remains the same. */
    @@ -1129,7 +1129,7 @@ static void update_nodemasks_hier(struct cpuset *cs, nodemask_t *new_mems)
    * If it becomes empty, inherit the effective mask of the
    * parent, which is guaranteed to have some MEMs.
    */
    - if (nodes_empty(*new_mems))
    + if (cgroup_on_dfl(cp->css.cgroup) && nodes_empty(*new_mems))
    *new_mems = parent->effective_mems;

    /* Skip the whole subtree if the nodemask remains the same. */
    --
    1.8.0.2


    \
     
     \ /
      Last update: 2015-02-13 04:41    [W:4.118 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site