2021-10-28 22:16:52

by Dan Schatzberg

[permalink] [raw]
Subject: [PATCH] cgroup: Fix rootcg cpu.stat guest double counting

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 <[email protected]>
---
kernel/cgroup/rstat.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c
index b264ab5652ba..1486768f2318 100644
--- a/kernel/cgroup/rstat.c
+++ b/kernel/cgroup/rstat.c
@@ -433,8 +433,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];
}
}

--
2.30.2


2021-10-29 17:25:51

by Daniel Jordan

[permalink] [raw]
Subject: Re: [PATCH] cgroup: Fix rootcg cpu.stat guest double counting

On Thu, Oct 28, 2021 at 03:15:27PM -0700, Dan Schatzberg wrote:
> 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.

Yes, definitely a bug. The same fix was posted a couple months ago as
part of a series but never picked up:

https://x-lore.kernel.org/all/[email protected]/

The series also touched cputime, so we might be waiting for scheduler
folks? +Ingo +Peter +Andrey

2021-11-01 16:51:44

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] cgroup: Fix rootcg cpu.stat guest double counting

On Thu, Oct 28, 2021 at 03:15:27PM -0700, Dan Schatzberg wrote:
> 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 <[email protected]>

Applying to cgroup/for-5.16.

Thanks.

--
tejun

2021-11-15 16:40:11

by Andrey Ryabinin

[permalink] [raw]
Subject: Re: [PATCH] cgroup: Fix rootcg cpu.stat guest double counting



On 10/29/21 8:21 PM, Daniel Jordan wrote:
> On Thu, Oct 28, 2021 at 03:15:27PM -0700, Dan Schatzberg wrote:
>> 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.
>
> Yes, definitely a bug. The same fix was posted a couple months ago as
> part of a series but never picked up:
>
> https://x-lore.kernel.org/all/[email protected]/
>
> The series also touched cputime, so we might be waiting for scheduler
> folks? +Ingo +Peter +Andrey
>

Yeah, I'll do rebase and send v3