Thread (6 messages) 6 messages, 4 authors, 2021-11-23

[tip: sched/core] cputime, cpuacct: Include guest time in user time in cpuacct.stat

From: tip-bot2 for Andrey Ryabinin <hidden>
Date: 2021-11-23 11:02:07
Also in: lkml
Subsystem: scheduler, the rest · Maintainers: Ingo Molnar, Peter Zijlstra, Juri Lelli, Vincent Guittot, Linus Torvalds

The following commit has been merged into the sched/core branch of tip:

Commit-ID:     9731698ecb9c851f353ce2496292ff9fcea39dff
Gitweb:        https://git.kernel.org/tip/9731698ecb9c851f353ce2496292ff9fcea39dff
Author:        Andrey Ryabinin [off-list ref]
AuthorDate:    Mon, 15 Nov 2021 19:46:04 +03:00
Committer:     Peter Zijlstra [off-list ref]
CommitterDate: Tue, 23 Nov 2021 09:55:22 +01:00

cputime, cpuacct: Include guest time in user time in cpuacct.stat

cpuacct.stat in no-root cgroups shows user time without guest time
included int it. This doesn't match with user time shown in root
cpuacct.stat and /proc/<pid>/stat. This also affects cgroup2's cpu.stat
in the same way.

Make account_guest_time() to add user time to cgroup's cpustat to
fix this.

Fixes: ef12fefabf94 ("cpuacct: add per-cgroup utime/stime statistics")
Signed-off-by: Andrey Ryabinin <redacted>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Acked-by: Tejun Heo <tj@kernel.org>
Cc: <redacted>
Link: https://lore.kernel.org/r/20211115164607.23784-1-arbn@yandex-team.com (local)
---
 kernel/sched/cputime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 872e481..042a6db 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -148,10 +148,10 @@ void account_guest_time(struct task_struct *p, u64 cputime)
 
 	/* Add guest time to cpustat. */
 	if (task_nice(p) > 0) {
-		cpustat[CPUTIME_NICE] += cputime;
+		task_group_account_field(p, CPUTIME_NICE, cputime);
 		cpustat[CPUTIME_GUEST_NICE] += cputime;
 	} else {
-		cpustat[CPUTIME_USER] += cputime;
+		task_group_account_field(p, CPUTIME_USER, cputime);
 		cpustat[CPUTIME_GUEST] += cputime;
 	}
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help