We already track multiple tick statistics per-cgroup, using
the task_group_account_field facility. This patch accounts
guest_time in that manner as well.

Signed-off-by: Glauber Costa <glom...@openvz.org>
CC: Peter Zijlstra <a.p.zijls...@chello.nl>
CC: Paul Turner <p...@google.com>
---
 kernel/sched/cputime.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 74a44ef..e653e52 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -183,8 +183,6 @@ void account_user_time(struct task_struct *p, cputime_t 
cputime,
 static void account_guest_time(struct task_struct *p, cputime_t cputime,
                               cputime_t cputime_scaled)
 {
-       u64 *cpustat = kcpustat_this_cpu->cpustat;
-
        /* Add guest time to process. */
        p->utime += cputime;
        p->utimescaled += cputime_scaled;
@@ -193,11 +191,11 @@ static void account_guest_time(struct task_struct *p, 
cputime_t cputime,
 
        /* Add guest time to cpustat. */
        if (TASK_NICE(p) > 0) {
-               cpustat[CPUTIME_NICE] += (__force u64) cputime;
-               cpustat[CPUTIME_GUEST_NICE] += (__force u64) cputime;
+               task_group_account_field(p, CPUTIME_NICE, (__force u64) 
cputime);
+               task_group_account_field(p, CPUTIME_GUEST, (__force u64) 
cputime);
        } else {
-               cpustat[CPUTIME_USER] += (__force u64) cputime;
-               cpustat[CPUTIME_GUEST] += (__force u64) cputime;
+               task_group_account_field(p, CPUTIME_USER, (__force u64) 
cputime);
+               task_group_account_field(p, CPUTIME_GUEST, (__force u64) 
cputime);
        }
 }
 
-- 
1.8.1.4

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to