Re: [PATCH] sched/uclamp: Fix a bug in propagating uclamp value in new cgroups

From: Peter Zijlstra
Date: Tue Jan 07 2020 - 05:11:19 EST


On Tue, Dec 24, 2019 at 11:54:04AM +0000, Qais Yousef wrote:
> When a new cgroup is created, the effective uclamp value wasn't updated
> with a call to cpu_util_update_eff() that looks at the hierarchy and
> update to the most restrictive values.
>
> Fix it by ensuring to call cpu_util_update_eff() when a new cgroup
> becomes online.
>
> Without this change, the newly created cgroup uses the default
> root_task_group uclamp values, which is 1024 for both uclamp_{min, max},
> which will cause the rq to to be clamped to max, hence cause the
> system to run at max frequency.
>
> The problem was observed on Ubuntu server and was reproduced on Debian
> and Buildroot rootfs.
>
> By default, Ubuntu and Debian create a cpu controller cgroup hierarchy
> and add all tasks to it - which creates enough noise to keep the rq
> uclamp value at max most of the time. Imitating this behavior makes the
> problem visible in Buildroot too which otherwise looks fine since it's a
> minimal userspace.
>
> Reported-by: Doug Smythies <dsmythies@xxxxxxxxx>
> Tested-by: Doug Smythies <dsmythies@xxxxxxxxx>
> Fixes: 0b60ba2dd342 ("sched/uclamp: Propagate parent clamps")
> Link: https://lore.kernel.org/lkml/000701d5b965$361b6c60$a2524520$@net/
> Signed-off-by: Qais Yousef <qais.yousef@xxxxxxx>

Thanks!