From: Glauber Costa <glommer@parallels.com>
To: linux-kernel@vger.kernel.org
Cc: paul@paulmenage.org, lizf@cn.fujitsu.com, daniel.lezcano@free.fr,
a.p.zijlstra@chello.nl, jbottomley@parallels.com,
Glauber Costa <glommer@parallels.com>
Subject: [PATCH 06/10] per-cgroup boot time
Date: Sun, 2 Oct 2011 23:21:23 +0400 [thread overview]
Message-ID: <1317583287-18300-7-git-send-email-glommer@parallels.com> (raw)
In-Reply-To: <1317583287-18300-1-git-send-email-glommer@parallels.com>
Record the time in which the cgroup was created. This can be
used to provide a more accurate boottime information in
cpuacct.proc.stat.
Signed-off-by: Glauber Costa <glommer@parallels.com>
---
kernel/sched.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/kernel/sched.c b/kernel/sched.c
index 5a8181e..a2554b7 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -279,6 +279,7 @@ struct task_group {
struct autogroup *autogroup;
#endif
struct kernel_stat __percpu *cpustat;
+ struct timespec start_time;
};
/* task_group_lock serializes the addition/removal of task groups */
@@ -8127,6 +8128,7 @@ void __init sched_init(void)
INIT_LIST_HEAD(&root_task_group.siblings);
autogroup_init(&init_task);
+ root_task_group.start_time = (struct timespec){0, 0};
root_task_group.cpustat = alloc_percpu(struct kernel_stat);
/* Failing that early an allocation means we're screwed anyway */
BUG_ON(!root_task_group.cpustat);
@@ -8598,6 +8600,8 @@ struct task_group *sched_create_group(struct task_group *parent)
kstat->cpustat[IOWAIT_BASE] = root_kstat->cpustat[IOWAIT];
}
+ get_monotonic_boottime(&tg->start_time);
+
spin_lock_irqsave(&task_group_lock, flags);
list_add_rcu(&tg->list, &task_groups);
@@ -9182,6 +9186,9 @@ int cpu_cgroup_proc_stat(struct cgroup *cgrp, struct cftype *cft,
irq = softirq = steal = 0;
guest = guest_nice = 0;
getboottime(&boottime);
+#ifdef CONFIG_CGROUP_SCHED
+ boottime = timespec_add(boottime, tg->start_time);
+#endif
jif = boottime.tv_sec;
for_each_possible_cpu(i) {
--
1.7.6
next prev parent reply other threads:[~2011-10-02 19:23 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-02 19:21 [PATCH 00/10] Per-cgroup /proc/stat information Glauber Costa
2011-10-02 19:21 ` [PATCH 01/10] trivial: initialize root cgroup's sibling list Glauber Costa
2011-10-02 19:21 ` [PATCH 02/10] Change cpustat fields to an array Glauber Costa
2011-10-02 19:21 ` [PATCH 03/10] Move /proc/stat logic inside sched.c Glauber Costa
2011-10-02 19:21 ` [PATCH 04/10] Display /proc/stat information per cgroup Glauber Costa
2011-10-05 8:56 ` Peter Zijlstra
2011-10-05 12:10 ` Glauber Costa
2011-10-05 12:38 ` Peter Zijlstra
2011-10-05 12:43 ` Glauber Costa
2011-10-05 9:04 ` Peter Zijlstra
2011-10-05 12:11 ` Glauber Costa
2011-10-02 19:21 ` [PATCH 05/10] Make total_forks per-cgroup Glauber Costa
2011-10-05 9:05 ` Peter Zijlstra
2011-10-05 12:12 ` Glauber Costa
2011-10-11 23:45 ` Frederic Weisbecker
2011-10-12 7:35 ` Glauber Costa
2011-10-12 12:59 ` Frederic Weisbecker
2011-10-12 12:59 ` Glauber Costa
2011-10-12 13:03 ` Frederic Weisbecker
2011-10-12 13:03 ` Glauber Costa
2011-10-12 14:03 ` Frederic Weisbecker
2011-10-02 19:21 ` Glauber Costa [this message]
2011-10-02 19:21 ` [PATCH 07/10] Report steal time for cgroup Glauber Costa
2011-10-02 19:21 ` [PATCH 08/10] provide a version of cpuacct statistics inside cpu cgroup Glauber Costa
2011-10-05 9:10 ` Peter Zijlstra
2011-10-05 12:16 ` Glauber Costa
2011-10-02 19:21 ` [PATCH 09/10] provide a version of cpuusage " Glauber Costa
2011-10-05 9:14 ` Peter Zijlstra
2011-10-05 12:17 ` Glauber Costa
2011-10-05 9:46 ` Peter Zijlstra
2011-10-05 12:22 ` Glauber Costa
2011-10-05 12:31 ` Peter Zijlstra
2011-10-05 15:05 ` Glauber Costa
2011-10-02 19:21 ` [PATCH 10/10] Change CPUACCT to default n Glauber Costa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1317583287-18300-7-git-send-email-glommer@parallels.com \
--to=glommer@parallels.com \
--cc=a.p.zijlstra@chello.nl \
--cc=daniel.lezcano@free.fr \
--cc=jbottomley@parallels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=paul@paulmenage.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®