Quoting Zefan Li ([email protected]):
> 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 <[email protected]>
> Reported-by: Serge Hallyn <[email protected]>

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 <[email protected]>

> Cc: <[email protected]> # 3.17+
> Signed-off-by: Zefan Li <[email protected]>
> ---
>  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 [email protected]
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to