Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1368756yba; Sun, 5 May 2019 05:01:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqz+N4be+RaPnNHx8oehdotl98QoR8ZWGEKO37VonixbDsKgrbu1kcYktaQI1ezhLCjz0xmD X-Received: by 2002:a63:6907:: with SMTP id e7mr23720292pgc.209.1557057668976; Sun, 05 May 2019 05:01:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557057668; cv=none; d=google.com; s=arc-20160816; b=wlL9PBVKa6oHlviOMln9aNh3o89Ls7W9DvrdYsD39GrztTcitsM2l4VYOPzBSsh4SG 0szAJoeuziNvyH6c4L0Aql1ISgzZ8u+lEsL2h+8GxwDjyEpay1WT2UPHblkCVC+kgLpb n39QHc7p3Rt716CQjllNTgrBMSgiWX7lYnBFqNfCHJB228DfEnQcMevaonOu5rnDBi2M L9I6JzC5hCXEC2mg5ndBUH5WjZh3DxADfX0+oezhDhVB4FMHCWPvM7Q4ONiCYa7Zwulc 9GHI8QsOnwjUoy0GCfZU/VdwAUASWfjv/Juhi1fKvpJpD7CgKP+g8lkNS6MLd9j3jnv3 zdug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=SlM3USKL5KtSMrLkEVxw444iFOZlJBM/z0EsV6bvI8U=; b=y+4ENqCuirWDv5WaRAhR7RztkL2z9Exp/w3OXUiCm6fvCkGC+DF3zG15YP1xv4n+Og 7e1oClWDHJ0nF42sOamG7SRwaMQq3V14Msr3Z6kTtlb2ITnfcTsLYjVjA8uJ4U4GDxvH Wq2zAoPY4S4RU5BxH+aYO/i2CqH+bqLrstWu29dCO5hHIfKzV4fe8lUep/ihJpHbdBTZ aGcV8+kg3rxdmUu/aKB7HAJUA0k+J3Pd7br4VHc39Jdxkq1PicyWtWV3oWhmNw4TvEUx 92PrigpYErfKUhHwNM8tRf8bX837xFBFbJYESPTaxd3R2B/cUCPb8d+U4DEbhVpKyWw/ l7WQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t7si9704212pgu.342.2019.05.05.05.00.53; Sun, 05 May 2019 05:01:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727846AbfEEL6w (ORCPT + 99 others); Sun, 5 May 2019 07:58:52 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:56890 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727765AbfEEL6e (ORCPT ); Sun, 5 May 2019 07:58:34 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 452481715; Sun, 5 May 2019 04:58:34 -0700 (PDT) Received: from e107158-lin.cambridge.arm.com (e107158-lin.cambridge.arm.com [10.1.194.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BED303F5C1; Sun, 5 May 2019 04:58:32 -0700 (PDT) From: Qais Yousef To: Peter Zijlstra , Ingo Molnar , Steven Rostedt Cc: linux-kernel@vger.kernel.org, Pavankumar Kondeti , Sebastian Andrzej Siewior , Uwe Kleine-Konig , Qais Yousef Subject: [PATCH 6/7] sched: Add sched_overutilized tracepoint Date: Sun, 5 May 2019 12:57:31 +0100 Message-Id: <20190505115732.9844-7-qais.yousef@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190505115732.9844-1-qais.yousef@arm.com> References: <20190505115732.9844-1-qais.yousef@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new tracepoint allows us to track the changes in overutilized status. Overutilized status is associated with EAS. It indicates that the system is in high performance state. EAS is disabled when the system is in this state since there's not much energy savings while high performance tasks are pushing the system to the limit and it's better to default to the spreading behavior of the scheduler. This tracepoint helps understanding and debugging the conditions under which this happens. Signed-off-by: Qais Yousef --- include/trace/events/sched.h | 4 ++++ kernel/sched/fair.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 0933c08cfc7e..d27733d9aed6 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -600,6 +600,10 @@ DECLARE_TRACE(sched_load_se, TP_PROTO(int cpu, const char *path, struct sched_entity *se), TP_ARGS(cpu, path, se)); +DECLARE_TRACE(sched_overutilized, + TP_PROTO(int overutilized), + TP_ARGS(overutilized)); + #endif /* _TRACE_SCHED_H */ /* This part must be outside protection */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 3fd306079b57..75403918e158 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4965,8 +4965,10 @@ static inline bool cpu_overutilized(int cpu) static inline void update_overutilized_status(struct rq *rq) { - if (!READ_ONCE(rq->rd->overutilized) && cpu_overutilized(rq->cpu)) + if (!READ_ONCE(rq->rd->overutilized) && cpu_overutilized(rq->cpu)) { WRITE_ONCE(rq->rd->overutilized, SG_OVERUTILIZED); + trace_sched_overutilized(1); + } } #else static inline void update_overutilized_status(struct rq *rq) { } @@ -8330,8 +8332,11 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd /* Update over-utilization (tipping point, U >= 0) indicator */ WRITE_ONCE(rd->overutilized, sg_status & SG_OVERUTILIZED); + + trace_sched_overutilized(!!(sg_status & SG_OVERUTILIZED)); } else if (sg_status & SG_OVERUTILIZED) { WRITE_ONCE(env->dst_rq->rd->overutilized, SG_OVERUTILIZED); + trace_sched_overutilized(1); } } -- 2.17.1