On Tue, Jun 07, 2016 at 04:50:38PM +0300, Andrey Ryabinin wrote: > Setting cpu limits reset number of cpus > # echo 2 >/sys/fs/cgroup/cpu,cpuacct/101/cpu.nr_cpus > # exec 101 cat /proc/cpuinfo |grep -c processor > 2 > # echo 160000 >/sys/fs/cgroup/cpu,cpuacct/101/cpu.cfs_quota_us > # vzctl exec 101 cat /proc/cpuinfo |grep -c processor > 4 > # cat /sys/fs/cgroup/cpu,cpuacct/101/cpu.nr_cpus > 0 > > tg_update_cpu_limit() does that without any apparent reason, > so let's fix it,. > > https://jira.sw.ru/browse/PSBM-48061 > > Signed-off-by: Andrey Ryabinin <[email protected]> > --- > kernel/sched/core.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 2c147c8..51ebed2 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -8696,7 +8696,6 @@ static void tg_update_cpu_limit(struct task_group *tg) > } > > tg->cpu_rate = rate; > - tg->nr_cpus = 0;
This is incorrect. Suppose nr_cpus = 2 and you set cfs_quota to 4 * cfs_period. If you don't reset nr_cpus, you'll get cpu limit equal to 400, although it should be min(nr_cpus * 100, cpu_rate) = 200. > } > > static int tg_set_cpu_limit(struct task_group *tg, _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
