Re: [PATCH 1/3] cpuset: initialize effective masks when clone_children is enabled
From: Serge E. Hallyn
Date: Fri Feb 13 2015 - 01:19:18 EST
Quoting Zefan Li (lizefan@xxxxxxxxxx):
> If clone_children is enabled, effective masks won't be initialized
> due to the bug:
>
> # mount -t cgroup -o cpuset xxx /mnt
> # echo 1 > cgroup.clone_children
> # mkdir /mnt/tmp
> # cat /mnt/tmp/
> # cat cpuset.effective_cpus
>
> # cat cpuset.cpus
> 0-15
>
> And then this cpuset won't constrain the tasks in it.
>
> Either the bug or the fix has no effect on unified hierarchy, as
> there's no clone_chidren flag there any more.
>
> Reported-by: Christian Brauner <christianvanbrauner@xxxxxxxxx>
> Reported-by: Serge Hallyn <serge.hallyn@xxxxxxxxxx>
Thanks - this give sme the correct output in /proc/self/status and
cpuest.cpus. (I didn't do a stress test but that seems unlikely to
be broken)
Tested-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx> # 3.17+
> Signed-off-by: Zefan Li <lizefan@xxxxxxxxxx>
> ---
> kernel/cpuset.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/kernel/cpuset.c b/kernel/cpuset.c
> index 64b257f..7e9d711 100644
> --- a/kernel/cpuset.c
> +++ b/kernel/cpuset.c
> @@ -1992,7 +1992,9 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
>
> spin_lock_irq(&callback_lock);
> cs->mems_allowed = parent->mems_allowed;
> + cs->effective_mems = parent->mems_allowed;
> cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
> + cpumask_copy(cs->effective_cpus, parent->cpus_allowed);
> spin_unlock_irq(&callback_lock);
> out_unlock:
> mutex_unlock(&cpuset_mutex);
> --
> 1.8.0.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/