From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752268Ab1LTSJs (ORCPT ); Tue, 20 Dec 2011 13:09:48 -0500 Received: from intmgw001.ash2.facebook.com ([66.220.155.178]:34742 "EHLO intmgw003.ash2.facebook.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751742Ab1LTSJY (ORCPT ); Tue, 20 Dec 2011 13:09:24 -0500 From: Arun Sharma To: linux-kernel@vger.kernel.org Cc: Arun Sharma , Peter Zijlstra , Steven Rostedt , Mathieu Desnoyers , Arnaldo Carvalho de Melo , Andrew Vagin , Frederic Weisbecker , Ingo Molnar Subject: [PATCH 1/2] sched: Retain sleep/block information Date: Tue, 20 Dec 2011 10:09:17 -0800 Message-Id: <1324404558-353-2-git-send-email-asharma@fb.com> X-Mailer: git-send-email 1.7.4 In-Reply-To: <1324404558-353-1-git-send-email-asharma@fb.com> References: <1324404558-353-1-git-send-email-asharma@fb.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is so that we can compute the sleep/block delay at context switch time for the purpose of sleep profiling. Signed-off-by: Arun Sharma Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Mathieu Desnoyers Cc: Arnaldo Carvalho de Melo Cc: Andrew Vagin Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org --- kernel/sched/fair.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index cd3b642..8ca98eb 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1003,7 +1003,6 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) if (unlikely(delta > se->statistics.sleep_max)) se->statistics.sleep_max = delta; - se->statistics.sleep_start = 0; se->statistics.sum_sleep_runtime += delta; if (tsk) { @@ -1020,7 +1019,6 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) if (unlikely(delta > se->statistics.block_max)) se->statistics.block_max = delta; - se->statistics.block_start = 0; se->statistics.sum_sleep_runtime += delta; if (tsk) { @@ -1193,8 +1191,12 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) if (tsk->state & TASK_INTERRUPTIBLE) se->statistics.sleep_start = rq_of(cfs_rq)->clock; + else + se->statistics.sleep_start = 0; if (tsk->state & TASK_UNINTERRUPTIBLE) se->statistics.block_start = rq_of(cfs_rq)->clock; + else + se->statistics.block_start = 0; } #endif } -- 1.7.4