From patchwork Wed Mar 22 15:18:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Luba X-Patchwork-Id: 73507 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp2409948wrt; Wed, 22 Mar 2023 08:41:52 -0700 (PDT) X-Google-Smtp-Source: AK7set/VaCLXZERR1RBhy7Drp2ygMbXXoW7x8NnyaJl1l4Jgt9NDjlPVCALqCcfXIpzVJhR3yk4y X-Received: by 2002:a17:906:ecb5:b0:929:d2f4:1824 with SMTP id qh21-20020a170906ecb500b00929d2f41824mr6215542ejb.21.1679499712132; Wed, 22 Mar 2023 08:41:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679499712; cv=none; d=google.com; s=arc-20160816; b=S2knWgnlgZtjT8azfZKv9r6T1EjxjG4CZBDiAtQy4BXOI6oZeRsevjg3PTTMMdRo6t tiYj7rmV2eMMY4cR5xlsTtwhGldVIaraANqfiNI9QI4O3nbCLfgBe43Lh4huJFroNnEX Fsgii5lQl6q2ewERyJpJNy4Ap8GTzAbpbJJqjMU1TATpq5MbS4CoPQv0rBmOZtYLfAwI qq3jLyDlj40qy5m+G+tk+TSv/czvAQYFXHk8LM+Sae44BybM2YYSKfIC8WuQBetAw0ZE mN8kSuw7cscRL8qlxvKxFdeFxfXTpg/CNjUQOfIbGGadv2Y1be1r5P2g8VriG7bO5KBB HiLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=M/zhULCHA1XSZ1Q171tTn9PBYyckisFrE89Od7KPEKY=; b=O7oPM3DmJnmft3eHDJ3qAbEaavYxkb5DDYf9G44bjoEcspo60hwcVYkxI8JltwWo0m uyoeIHxIAyeMI80QrWs+G7mT52PRU37gyIVWP7PmdDU4SjGTFS44cfbKJyv99zJYl3yy WCENirdSup+3X3mF1yst4A7paDfCsChctthMkkyk/PQJE4ttWuOPDNwIPUoi8dtyMorn Pc64heQm9RiBi5ZKZKyKHJULDLhfLPRm0jAnPDLXoDWLggrNsvM5ViJZ9Oh1ascqyrxy 0o40E46lqUNZUuTwst9djzMomwgSHDCKoxXyOt4/muI1gj/zWL1P8euTywLQYcrUZCCQ LiVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id by8-20020a0564021b0800b004ad797532easi116011edb.34.2023.03.22.08.41.29; Wed, 22 Mar 2023 08:41:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231604AbjCVPUS (ORCPT + 99 others); Wed, 22 Mar 2023 11:20:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231538AbjCVPUP (ORCPT ); Wed, 22 Mar 2023 11:20:15 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id AA838591E0; Wed, 22 Mar 2023 08:20:14 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 755B4AD7; Wed, 22 Mar 2023 08:20:58 -0700 (PDT) Received: from e123648.arm.com (unknown [10.57.18.173]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C8DC73F71E; Wed, 22 Mar 2023 08:20:11 -0700 (PDT) From: Lukasz Luba To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: rostedt@goodmis.org, mhiramat@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, delyank@fb.com, lukasz.luba@arm.com, qyousef@google.com Subject: [PATCH 1/3] sched/tp: Add new tracepoint to track uclamp set from user-space Date: Wed, 22 Mar 2023 15:18:41 +0000 Message-Id: <20230322151843.14390-2-lukasz.luba@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230322151843.14390-1-lukasz.luba@arm.com> References: <20230322151843.14390-1-lukasz.luba@arm.com> X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761083090384078603?= X-GMAIL-MSGID: =?utf-8?q?1761083090384078603?= The user-space can set uclamp value for a given task. It impacts task placement decisions made by the scheduler. This is very useful information and helps to understand the system behavior or track improvements in middleware and applications which start using uclamp mechanisms and report better performance in tests. Signed-off-by: Lukasz Luba --- include/trace/events/sched.h | 4 ++++ kernel/sched/core.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index fbb99a61f714..dbfb30809f15 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -735,6 +735,10 @@ DECLARE_TRACE(sched_update_nr_running_tp, TP_PROTO(struct rq *rq, int change), TP_ARGS(rq, change)); +DECLARE_TRACE(uclamp_update_tsk_tp, + TP_PROTO(struct task_struct *tsk, int uclamp_id, unsigned int value), + TP_ARGS(tsk, uclamp_id, value)); + #endif /* _TRACE_SCHED_H */ /* This part must be outside protection */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 488655f2319f..882c92e3ccf0 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -110,6 +110,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_overutilized_tp); EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp); EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_se_tp); EXPORT_TRACEPOINT_SYMBOL_GPL(sched_update_nr_running_tp); +EXPORT_TRACEPOINT_SYMBOL_GPL(uclamp_update_tsk_tp); DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); @@ -1936,12 +1937,16 @@ static void __setscheduler_uclamp(struct task_struct *p, attr->sched_util_min != -1) { uclamp_se_set(&p->uclamp_req[UCLAMP_MIN], attr->sched_util_min, true); + trace_uclamp_update_tsk_tp(p, UCLAMP_MIN, + attr->sched_util_min); } if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX && attr->sched_util_max != -1) { uclamp_se_set(&p->uclamp_req[UCLAMP_MAX], attr->sched_util_max, true); + trace_uclamp_update_tsk_tp(p, UCLAMP_MAX, + attr->sched_util_max); } }