Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1439678iob; Fri, 29 Apr 2022 05:29:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyctwHBXRNm1TQnqu9/ik58Kggtx9JpAywO7iyB/TO402s5Mt6ELULlFC+P0/2ty+aQ5VPb X-Received: by 2002:a05:6512:3f29:b0:450:ac79:77dd with SMTP id y41-20020a0565123f2900b00450ac7977ddmr26882482lfa.301.1651235379069; Fri, 29 Apr 2022 05:29:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651235379; cv=none; d=google.com; s=arc-20160816; b=L/7rP9lIKewt5JwuBQ9REQRB+5w9DWZd1MOSP1qvvRPb5jSa3hjeX3F0DSESlYXRTz 3+3Umytl5APonKJkCB+W+v+QVmXAvCOndoZCCp4wBKdbHNBzYeg0/SYB2FYxOAXnvcR0 HpA7WVGMK6m5cf5OvLlJFwLbMmoG0YG6Lk1c8kPAH2qvtdwbkpBFfurQCBqJCdH1KO1g qPx4/4gL+MdMEDUo31mVRh7t1T+XppLLqTp3uFjXY27raBOuLsyLVeqIYVbn0EtPEY6r 2STKwweCcGB1pg6rV7WhJB7SrxcA2Kiikkdovg2GnDi/Z1BnNBdVSPiRysdnGEjGbXoJ 6pbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=2YnhCcYX5bsJaB6DwhutIl7yWSTBdHaGGY9WdeaCHB0=; b=CR04rfYt18aLCBoY+W7KiaVGSWPpMs1RnM1ctBVHqAYaglEoJZ2JGIeBp72cMYKtzr 8lygpG9RjTOihNz5cXxbmXz0zYpo4QYYwrZtmHOBSOWx5QlIoVn7NVh6s3T7wS/AmiQT 5AgZv1hrZvmcjMXCE4t9UfXvq79Eq1nsdmwz7x9T3nZLywg4Q/JdxvlgHknjcONFGiXK gcJI035NiqViW3xXpZ9JSEyR3PdVLNM7kKBTpwxGq/htsvG5NzQtOFunpGthjWG8AP+v mgdVO90qOeva7c2HVTYDtpcQaK+NHucNpbtTitPRmCq1/rgbEIRShP3jFE/YWqZisi56 Tu1Q== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s9-20020a2eb8c9000000b0024f142ce45csi7631438ljp.449.2022.04.29.05.29.10; Fri, 29 Apr 2022 05:29:38 -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 S1356158AbiD2I4D (ORCPT + 99 others); Fri, 29 Apr 2022 04:56:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355948AbiD2I4C (ORCPT ); Fri, 29 Apr 2022 04:56:02 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1EBD8C44E8 for ; Fri, 29 Apr 2022 01:52:44 -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 CC55211FB; Fri, 29 Apr 2022 01:52:43 -0700 (PDT) Received: from wubuntu (unknown [10.57.75.64]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A8DB43F73B; Fri, 29 Apr 2022 01:52:42 -0700 (PDT) Date: Fri, 29 Apr 2022 09:52:40 +0100 From: Qais Yousef To: "Peter Zijlstra (Intel)" , Ingo Molnar Cc: Dietmar Eggemann , Vincent Guittot , Steven Rostedt , Phil Auld , Giovanni Gherdovich , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] sched/fair: Remove sched_trace_*() helper functions Message-ID: <20220429085240.akxmdnc3a2s6rq7b@wubuntu> References: <20220428144338.479094-1-qais.yousef@arm.com> <20220428144338.479094-2-qais.yousef@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20220428144338.479094-2-qais.yousef@arm.com> X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 +CC lkml On 04/28/22 15:43, Qais Yousef wrote: > From: Dietmar Eggemann > > We no longer need them as we can use DWARF debug info or BTF + pahole to > re-generate the required structs to compile against them for a given > kernel. > > This moves the burden of maintaining these helper functions to the > module. > > https://github.com/qais-yousef/sched_tp > > Note that pahole v1.15 is required at least for using DWARF. And for BTF > v1.23 which is not yet released will be required. There's alignment > problem that will lead to crashes in earlier versions when used with > BTF. > > We should have enough infrastructure to make these helper functions now > obsolete, so remove them. > > Signed-off-by: Dietmar Eggemann > [Rewrote commit message to reflect the new alternative] > Signed-off-by: Qais Yousef > --- > include/linux/sched.h | 14 ------- > kernel/sched/fair.c | 98 ------------------------------------------- > 2 files changed, 112 deletions(-) > > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 67f06f72c50e..fc74ea2578b7 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -2378,20 +2378,6 @@ static inline void rseq_syscall(struct pt_regs *regs) > > #endif > > -const struct sched_avg *sched_trace_cfs_rq_avg(struct cfs_rq *cfs_rq); > -char *sched_trace_cfs_rq_path(struct cfs_rq *cfs_rq, char *str, int len); > -int sched_trace_cfs_rq_cpu(struct cfs_rq *cfs_rq); > - > -const struct sched_avg *sched_trace_rq_avg_rt(struct rq *rq); > -const struct sched_avg *sched_trace_rq_avg_dl(struct rq *rq); > -const struct sched_avg *sched_trace_rq_avg_irq(struct rq *rq); > - > -int sched_trace_rq_cpu(struct rq *rq); > -int sched_trace_rq_cpu_capacity(struct rq *rq); > -int sched_trace_rq_nr_running(struct rq *rq); > - > -const struct cpumask *sched_trace_rd_span(struct root_domain *rd); > - > #ifdef CONFIG_SCHED_CORE > extern void sched_core_free(struct task_struct *tsk); > extern void sched_core_fork(struct task_struct *p); > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 4c420124b5d6..ff1177a4a286 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -11882,101 +11882,3 @@ __init void init_sched_fair_class(void) > #endif /* SMP */ > > } > - > -/* > - * Helper functions to facilitate extracting info from tracepoints. > - */ > - > -const struct sched_avg *sched_trace_cfs_rq_avg(struct cfs_rq *cfs_rq) > -{ > -#ifdef CONFIG_SMP > - return cfs_rq ? &cfs_rq->avg : NULL; > -#else > - return NULL; > -#endif > -} > -EXPORT_SYMBOL_GPL(sched_trace_cfs_rq_avg); > - > -char *sched_trace_cfs_rq_path(struct cfs_rq *cfs_rq, char *str, int len) > -{ > - if (!cfs_rq) { > - if (str) > - strlcpy(str, "(null)", len); > - else > - return NULL; > - } > - > - cfs_rq_tg_path(cfs_rq, str, len); > - return str; > -} > -EXPORT_SYMBOL_GPL(sched_trace_cfs_rq_path); > - > -int sched_trace_cfs_rq_cpu(struct cfs_rq *cfs_rq) > -{ > - return cfs_rq ? cpu_of(rq_of(cfs_rq)) : -1; > -} > -EXPORT_SYMBOL_GPL(sched_trace_cfs_rq_cpu); > - > -const struct sched_avg *sched_trace_rq_avg_rt(struct rq *rq) > -{ > -#ifdef CONFIG_SMP > - return rq ? &rq->avg_rt : NULL; > -#else > - return NULL; > -#endif > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_avg_rt); > - > -const struct sched_avg *sched_trace_rq_avg_dl(struct rq *rq) > -{ > -#ifdef CONFIG_SMP > - return rq ? &rq->avg_dl : NULL; > -#else > - return NULL; > -#endif > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_avg_dl); > - > -const struct sched_avg *sched_trace_rq_avg_irq(struct rq *rq) > -{ > -#if defined(CONFIG_SMP) && defined(CONFIG_HAVE_SCHED_AVG_IRQ) > - return rq ? &rq->avg_irq : NULL; > -#else > - return NULL; > -#endif > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_avg_irq); > - > -int sched_trace_rq_cpu(struct rq *rq) > -{ > - return rq ? cpu_of(rq) : -1; > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_cpu); > - > -int sched_trace_rq_cpu_capacity(struct rq *rq) > -{ > - return rq ? > -#ifdef CONFIG_SMP > - rq->cpu_capacity > -#else > - SCHED_CAPACITY_SCALE > -#endif > - : -1; > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_cpu_capacity); > - > -const struct cpumask *sched_trace_rd_span(struct root_domain *rd) > -{ > -#ifdef CONFIG_SMP > - return rd ? rd->span : NULL; > -#else > - return NULL; > -#endif > -} > -EXPORT_SYMBOL_GPL(sched_trace_rd_span); > - > -int sched_trace_rq_nr_running(struct rq *rq) > -{ > - return rq ? rq->nr_running : -1; > -} > -EXPORT_SYMBOL_GPL(sched_trace_rq_nr_running); > -- > 2.25.1 >