public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] export percpu cpuacct cgroup stats
@ 2008-12-04  4:48 Ken Chen
  2008-12-04  5:34 ` Li Zefan
  0 siblings, 1 reply; 14+ messages in thread
From: Ken Chen @ 2008-12-04  4:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Kernel Mailing List

This patch export per-cpu CPU cycle usage for a given cpuacct cgroup.
There is a need for a user space monitor daemon to track group CPU
usage on per-cpu base.  It is also useful for monitor CFS load
balancer behavior by tracking per CPU group usage.


Signed-off-by: Ken Chen <kenchen@google.com>

diff --git a/kernel/sched.c b/kernel/sched.c
index b7480fb..cd78948 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -9345,12 +9345,34 @@ out:
 	return err;
 }

+static int cpuacct_percpu_seq_read(struct cgroup *cgroup, struct cftype *cft,
+				   struct seq_file *m)
+{
+	struct cpuacct *ca = cgroup_ca(cgroup);
+	u64 percpu;
+	int i;
+
+	for_each_possible_cpu(i) {
+		spin_lock_irq(&cpu_rq(i)->lock);
+		percpu = *percpu_ptr(ca->cpuusage, i);
+		spin_unlock_irq(&cpu_rq(i)->lock);
+		seq_printf(m, "%lld ", percpu);
+	}
+	seq_printf(m, "\n");
+	return 0;
+}
+
 static struct cftype files[] = {
 	{
 		.name = "usage",
 		.read_u64 = cpuusage_read,
 		.write_u64 = cpuusage_write,
 	},
+	{
+		.name = "percpu",
+		.read_seq_string = cpuacct_percpu_seq_read,
+	},
+
 };

 static int cpuacct_populate(struct cgroup_subsys *ss, struct cgroup *cgrp)

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-12-08 14:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-04  4:48 [patch] export percpu cpuacct cgroup stats Ken Chen
2008-12-04  5:34 ` Li Zefan
2008-12-04  9:24   ` Ingo Molnar
2008-12-04 23:02   ` Paul Menage
2008-12-05  7:44     ` Ken Chen
2008-12-05  7:54       ` Li Zefan
2008-12-05  8:30         ` Ken Chen
2008-12-05  8:35           ` Li Zefan
2008-12-05 13:52             ` Ingo Molnar
2008-12-05 18:16               ` Ken Chen
2008-12-07  7:27                 ` Andrew Morton
2008-12-08 14:33                   ` Ingo Molnar
2008-12-05 18:10         ` Ken Chen
2008-12-08  1:25           ` Li Zefan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox