From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752855AbbF3JLF (ORCPT ); Tue, 30 Jun 2015 05:11:05 -0400 Received: from e28smtp06.in.ibm.com ([122.248.162.6]:57055 "EHLO e28smtp06.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751269AbbF3JK4 (ORCPT ); Tue, 30 Jun 2015 05:10:56 -0400 X-Helo: d28dlp01.in.ibm.com X-MailFrom: naveen.n.rao@linux.vnet.ibm.com X-RcptTo: linux-kernel@vger.kernel.org From: "Naveen N. Rao" To: bsingharora@gmail.com, mingo@kernel.org Cc: linux-kernel@vger.kernel.org, srikar@linux.vnet.ibm.com, ricklind@us.ibm.com, a.p.zijlstra@chello.nl Subject: [PATCH v3 2/2] schedstat: Expose /proc/pid/schedstat if CONFIG_SCHED_INFO is set Date: Tue, 30 Jun 2015 14:36:03 +0530 Message-Id: <5ccbef17d4bc841084ea6e6421d4e4a23b7b806f.1435654789.git.naveen.n.rao@linux.vnet.ibm.com> X-Mailer: git-send-email 2.4.0 In-Reply-To: <20150630055537.GA21513@linux.vnet.ibm.com> References: X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15063009-0021-0000-0000-000006028DBC Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the unlikely scenario that the kernel is booted with nodelayacct, we dump all zeroes so as to make it clear that scheduler statistics are not available. Signed-off-by: Naveen N. Rao --- Changes since v2: Revert to unsigned long in printf fs/proc/base.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 286a422..ad63fa3 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -304,14 +304,17 @@ static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns, } #endif -#ifdef CONFIG_SCHEDSTATS +#ifdef CONFIG_SCHED_INFO /* * Provides /proc/PID/schedstat */ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { - seq_printf(m, "%llu %llu %lu\n", + if (unlikely(!sched_info_on())) + seq_printf(m, "0 0 0\n"); + else + seq_printf(m, "%llu %llu %lu\n", (unsigned long long)task->se.sum_exec_runtime, (unsigned long long)task->sched_info.run_delay, task->sched_info.pcount); @@ -2600,7 +2603,7 @@ static const struct pid_entry tgid_base_stuff[] = { #ifdef CONFIG_STACKTRACE ONE("stack", S_IRUSR, proc_pid_stack), #endif -#ifdef CONFIG_SCHEDSTATS +#ifdef CONFIG_SCHED_INFO ONE("schedstat", S_IRUGO, proc_pid_schedstat), #endif #ifdef CONFIG_LATENCYTOP @@ -2948,7 +2951,7 @@ static const struct pid_entry tid_base_stuff[] = { #ifdef CONFIG_STACKTRACE ONE("stack", S_IRUSR, proc_pid_stack), #endif -#ifdef CONFIG_SCHEDSTATS +#ifdef CONFIG_SCHED_INFO ONE("schedstat", S_IRUGO, proc_pid_schedstat), #endif #ifdef CONFIG_LATENCYTOP -- 2.4.0