Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753441AbYLPHGx (ORCPT ); Tue, 16 Dec 2008 02:06:53 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750875AbYLPHGo (ORCPT ); Tue, 16 Dec 2008 02:06:44 -0500 Received: from smtp-out.google.com ([216.239.45.13]:12247 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750721AbYLPHGn (ORCPT ); Tue, 16 Dec 2008 02:06:43 -0500 DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: content-type:content-transfer-encoding; b=Gb36Aa62YC6s9zI2aRhqUC6Smo7HtNzkTuqitsj8v8Ns4AmJN+OhXeM9y+BvokPE6 xSUUDkZhT+EmmPvQwfA4A== MIME-Version: 1.0 In-Reply-To: References: Date: Mon, 15 Dec 2008 23:06:41 -0800 Message-ID: Subject: [patch 2/2] cpuacct: export percpu cpuacct cgroup stats From: Ken Chen To: Linux Kernel Mailing List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1809 Lines: 62 sorry, forgot to cc lkml on initial post. ---------- Forwarded message ---------- From: Ken Chen Date: Mon, Dec 15, 2008 at 10:04 PM Subject: [patch 2/2] cpuacct: export percpu cpuacct cgroup stats To: Ingo Molnar , Andrew Morton , Paul Menage , Li Zefan 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 monitoring CFS load balancer behavior by tracking per CPU group usage. Signed-off-by: Ken Chen Reviewed-by: Li Zefan Reviewed-by: Andrew Morton diff --git a/kernel/sched.c b/kernel/sched.c index 124bd7a..cfdaace 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -9369,12 +9369,32 @@ 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_present_cpu(i) { + percpu = cpuacct_cpuusage_read(ca, i); + seq_printf(m, "%llu ", (unsigned long long) percpu); + } + seq_printf(m, "\n"); + return 0; +} + static struct cftype files[] = { { .name = "usage", .read_u64 = cpuusage_read, .write_u64 = cpuusage_write, }, + { + .name = "usage_percpu", + .read_seq_string = cpuacct_percpu_seq_read, + }, + }; static int cpuacct_populate(struct cgroup_subsys *ss, struct cgroup *cgrp) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/