cgroup: Fix rootcg cpu.stat guest double counting
authorDan Schatzberg <schatzberg.dan@gmail.com>
Thu, 28 Oct 2021 22:15:27 +0000 (15:15 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 13:04:13 +0000 (14:04 +0100)
[ Upstream commit 81c49d39aea8a10e6d05d3aa1cb65ceb721e19b0 ]

In account_guest_time in kernel/sched/cputime.c guest time is
attributed to both CPUTIME_NICE and CPUTIME_USER in addition to
CPUTIME_GUEST_NICE and CPUTIME_GUEST respectively. Therefore, adding
both to calculate usage results in double counting any guest time at
the rootcg.

Fixes: 936f2a70f207 ("cgroup: add cpu.stat file to root cgroup")
Signed-off-by: Dan Schatzberg <schatzberg.dan@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/cgroup/rstat.c

index d51175c..89ca9b6 100644 (file)
@@ -421,8 +421,6 @@ static void root_cgroup_cputime(struct task_cputime *cputime)
                cputime->sum_exec_runtime += user;
                cputime->sum_exec_runtime += sys;
                cputime->sum_exec_runtime += cpustat[CPUTIME_STEAL];
-               cputime->sum_exec_runtime += cpustat[CPUTIME_GUEST];
-               cputime->sum_exec_runtime += cpustat[CPUTIME_GUEST_NICE];
        }
 }