From patchwork Sun May 28 05:17:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 99877 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp777975vqr; Sat, 27 May 2023 23:28:05 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6C+jo7J5yRoIn15mS/QNRmME0uDCNwvZpVOKSBL4P+NEZjM0KxbNq3C7JP5rcnkCEgE7gE X-Received: by 2002:a05:6a21:788d:b0:10b:e39a:b50e with SMTP id bf13-20020a056a21788d00b0010be39ab50emr6356128pzc.36.1685255284890; Sat, 27 May 2023 23:28:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685255284; cv=none; d=google.com; s=arc-20160816; b=y9g0Gm6/JOvD+GtXuxyJk75foKQVaomo7ISnNKS7q+8fedfOWtlmbKfC8esDJxLOor rjmzNwutmAg7BbuXsOFgTvXuf30kiG8yQHYJFI60qrqnzsuiKBJKxElIGH4SWHZcbd+N W1TuTR0pnRBznnRZMsN8e0c3KLcg+5gAkoltPWPn+9gK8EMv0uzu6Wa8cAK42t5z03c7 JZx8yXtzfLGa4reihvOHjI2udnonSTQqSYNdVwWUiLTkDrpDjkLOpqbKklKp7TtK0eUs S7nutNWKa6qsqqxcFa6/0bpwKYQZjitdr80rYqiy7xXQaLeUM7iSf/E8Xuj3DG63wwe+ Rtqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=wfIp4vZibdiqN0LlC8WvobcWfbZsJbufbPEYT0u76HA=; b=tGh0/jcuHfV0+puCXyTxvoWiaXtZCPJmg4Gcu6U30XMjLvJbj8d5rLr7k+wD0sNIoO 2eh78cfIgVyap/6kq1cVaVT+a6dr6Vcr9ZodSMGKt7MOsReBY8pwFJUbyQ3RzD13X0+c y2OKUNQrMUT0umfDrNILePMA6uqiZY7WjXE5XnlQnXhQbgeRRH8UWMDGJRbHw5cOmp0u GJn8AgEAYxizWid6G57V+OeJkcOzXfSI06U98BKMAo8/u/OTODT2AV6XiP54txyerja1 fWC0Oe8nZkPa6ajeJ/SZQc2/vXZh465k0pR1T1SCDHYUBldIAXH/+gDErFu75iDgagnE ahWA== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w8-20020a63f508000000b0053424040bb7si7332563pgh.298.2023.05.27.23.27.51; Sat, 27 May 2023 23:28:04 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229543AbjE1F1G (ORCPT + 99 others); Sun, 28 May 2023 01:27:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbjE1F0s (ORCPT ); Sun, 28 May 2023 01:26:48 -0400 Received: from mammoth.local.home (cpe-172-100-189-27.stny.res.rr.com [172.100.189.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D4235E4; Sat, 27 May 2023 22:26:45 -0700 (PDT) Received: by mammoth.local.home (Postfix, from userid 5657) id B95EB300A58; Sun, 28 May 2023 01:17:53 -0400 (EDT) From: Steven Rostedt To: LKML , Linux trace kernel Cc: Masami Hiramatsu , Mark Rutland , "Steven Rostedt (Google)" Subject: [PATCH 1/5] tracing: Move setting of tracing_selftest_running out of register_tracer() Date: Sun, 28 May 2023 01:17:38 -0400 Message-Id: <20230528051742.1325503-2-rostedt@goodmis.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230528051742.1325503-1-rostedt@goodmis.org> References: <20230528051742.1325503-1-rostedt@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, PDS_RDNS_DYNAMIC_FP,RCVD_IN_PBL,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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?1767118245724639483?= X-GMAIL-MSGID: =?utf-8?q?1767118245724639483?= From: "Steven Rostedt (Google)" The variables tracing_selftest_running and tracing_selftest_disabled are only used for when CONFIG_FTRACE_STARTUP_TEST is enabled. Make them only visible within the selftest code. The setting of those variables are in the register_tracer() call, and set in a location where they do not need to be. Create a wrapper around run_tracer_selftest() called do_run_tracer_selftest() which sets those variables, and have register_tracer() call that instead. Having those variables only set within the CONFIG_FTRACE_STARTUP_TEST scope gets rid of them (and also the ability to remove testing against them) when the startup tests are not enabled (most cases). Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 81801dc31784..87e5920b141f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2041,6 +2041,17 @@ static int run_tracer_selftest(struct tracer *type) return 0; } +static int do_run_tracer_selftest(struct tracer *type) +{ + int ret; + + tracing_selftest_running = true; + ret = run_tracer_selftest(type); + tracing_selftest_running = false; + + return ret; +} + static __init int init_trace_selftests(void) { struct trace_selftests *p, *n; @@ -2092,6 +2103,10 @@ static inline int run_tracer_selftest(struct tracer *type) { return 0; } +static inline int do_run_tracer_selftest(struct tracer *type) +{ + return 0; +} #endif /* CONFIG_FTRACE_STARTUP_TEST */ static void add_tracer_options(struct trace_array *tr, struct tracer *t); @@ -2127,8 +2142,6 @@ int __init register_tracer(struct tracer *type) mutex_lock(&trace_types_lock); - tracing_selftest_running = true; - for (t = trace_types; t; t = t->next) { if (strcmp(type->name, t->name) == 0) { /* already found */ @@ -2157,7 +2170,7 @@ int __init register_tracer(struct tracer *type) /* store the tracer for __set_tracer_option */ type->flags->trace = type; - ret = run_tracer_selftest(type); + ret = do_run_tracer_selftest(type); if (ret < 0) goto out; @@ -2166,7 +2179,6 @@ int __init register_tracer(struct tracer *type) add_tracer_options(&global_trace, type); out: - tracing_selftest_running = false; mutex_unlock(&trace_types_lock); if (ret || !default_bootup_tracer) From patchwork Sun May 28 05:17:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 99879 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp798878vqr; Sun, 28 May 2023 00:30:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ70kT9LT01UDIUKf99vsEHLhoSXwhr6H3CTW/Kx3cmAemJWPU/DiYMQUQ77GQAg0MmQ41Dw X-Received: by 2002:a05:6a20:8f21:b0:103:7b36:f21 with SMTP id b33-20020a056a208f2100b001037b360f21mr4906611pzk.21.1685259009858; Sun, 28 May 2023 00:30:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685259009; cv=none; d=google.com; s=arc-20160816; b=a9IDOEqRPhuH+PwqrwUWgol/wJNWQ/2YmMV0fR4fKfEiJsQtj8w6XV/kU+1J3omN9d COP8esl8/BHWPh1qtiCV/r26H0NRr8etKvM7dp3OUzM0l46avplG4M+DfEvCR2lfR++p TG0GabNlogImhocVtA3lA6uNe7u1GE8YO7ghTI90FQHGhOnuCgPZEXox1lSE3pPa5yRg 5lp5kW7vb9+o6EzO5+SAAENmV6tXbhhQY9eF39lLhUCFxNnanEhR/619UwBlGIYLnpj9 0tudGRqhxja/mOU2zO/Das1AzzFLrZ18rTdkhSkmznowESGKxQZMMsIRIFIDMztH3/GZ 3GbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=KlygrmbP+qlojYjIIJj5nQYRhgEpwTCRA0ozDPtuf2Q=; b=YP67CFCeLSILSpGuO5NQcbHLBxfQb4YEJQDDYuas7ewkSCGXvqP6G4yG3ZneyIegWl 9xL+VgSYqlAJsbRC97ssH22KTSvRSa6JGAPYqrtKUZPjpHjXJ9H2m/Nl6pf8YTc0q0o+ b2Cnw/zDChGQSkT+sKoO4dLBrLGvBDLL9tVMW9eW1mji7zYi6kFSjdaxNfsajmP+jRoN w0ZZKxZwECTtbUSF0bz94TL6XhqsK1eadaZzLgpSZ/dDNSO7NpJvg7F2QWVgT/vwO1Ge WqCarnwrh83SPEmAYclAxZlWufet7M1jn9dEHRkQc5gFFuKSR6MLEdnBTZSR1dGCBz2e 2HMw== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m22-20020a637116000000b0053f2fc4379csi753735pgc.391.2023.05.28.00.29.57; Sun, 28 May 2023 00:30:09 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229496AbjE1F07 (ORCPT + 99 others); Sun, 28 May 2023 01:26:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229456AbjE1F0r (ORCPT ); Sun, 28 May 2023 01:26:47 -0400 Received: from mammoth.local.home (cpe-172-100-189-27.stny.res.rr.com [172.100.189.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id AEE8CDC; Sat, 27 May 2023 22:26:40 -0700 (PDT) Received: by mammoth.local.home (Postfix, from userid 5657) id C1A87300A64; Sun, 28 May 2023 01:17:53 -0400 (EDT) From: Steven Rostedt To: LKML , Linux trace kernel Cc: Masami Hiramatsu , Mark Rutland , "Steven Rostedt (Google)" Subject: [PATCH 2/5] tracing: Have tracer selftests call cond_resched() before running Date: Sun, 28 May 2023 01:17:39 -0400 Message-Id: <20230528051742.1325503-3-rostedt@goodmis.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230528051742.1325503-1-rostedt@goodmis.org> References: <20230528051742.1325503-1-rostedt@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, PDS_RDNS_DYNAMIC_FP,RCVD_IN_PBL,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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?1767122151583426370?= X-GMAIL-MSGID: =?utf-8?q?1767122151583426370?= From: "Steven Rostedt (Google)" As there are more and more internal selftests being added to the Linux kernel (KSAN, lockdep, etc) the selftests are taking longer to run when these are enabled. Add a cond_resched() to the calling of do_run_tracer_selftest() to force a schedule if NEED_RESCHED is set, otherwise the soft lockup watchdog may trigger on boot up. Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 87e5920b141f..70f2b511b9cd 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2045,6 +2045,13 @@ static int do_run_tracer_selftest(struct tracer *type) { int ret; + /* + * Tests can take a long time, especially if they are run one after the + * other, as does happen during bootup when all the tracers are + * registered. This could cause the soft lockup watchdog to trigger. + */ + cond_resched(); + tracing_selftest_running = true; ret = run_tracer_selftest(type); tracing_selftest_running = false; From patchwork Sun May 28 05:17:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 99875 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp776454vqr; Sat, 27 May 2023 23:22:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ITv8YdwfoezbjMayBbgW//2t7xQTJm+IY1z9OAuBxGXvcE2eWHMoXC3Fds1Vp+wuI2Ui2 X-Received: by 2002:a05:6a21:980e:b0:110:c8f:b53b with SMTP id ue14-20020a056a21980e00b001100c8fb53bmr4179180pzb.62.1685254976213; Sat, 27 May 2023 23:22:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685254976; cv=none; d=google.com; s=arc-20160816; b=l+1MeT++RfR6WxCf55uhxsIX4OjRoaZvgCIUDZJrukxQg2i1FE9YRD3d5qZvtqI2+I RFE8XEHWIHvFfL7QtsOKWTgu21EwczzvByrH7Bv3MfdDgklleUy+Bhfn2levLgy5AiOb y+tE65X9EHoFZ8QwngYMZ0+GKPbnyYGtTyYINoDwdChKk19xbwWZQWyyz5J7d47cPhYB i9eQnZszw54z9ouV37WjOahR0J8SMFhw4CynfR4EwoOL33rrw/ooA0ovF/iGiO7Fj8ZH LftuJsR+7NsuIIvNu6VXQQ+L1icLPiH4gU/iY1+nYXpJMUBKusZgGoizByEfENi3dypu EVSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NWv1OQNkfXk5DYMcQEmFRNMALd1PCdxPP8LgtlJ6Pto=; b=D6PZT52XbzzdfS+SA3im6E36jABU9r38cb+W2lyUT8CGDugX8inn9r0/skBA9pOCMe g2nJ8qfa+Mh6YuYKRDba6yurTJ+bNV2rW8sWibdbeLrj7t4eHaGHdNoOX0Pz/opfZW9b XE0+X91vWZNmKwOMPSj2BGhjz+Kejt/3GaDrrSdJwptXxtLHCu3Bqj6P5/EuzU9lVcK+ 4zNz9bhGnJNBZvzaWQtlaCEhnFjYYsdbr/UyUtzuSeEsBXdXreYGrTh6SxBOCpzQ8D1x Lyo+gCp1QIJhymSx33S6ge9i44HfKsB6jZMZJCZRf4IWHahfbST6Utsu+92ATsIpPy2h enTQ== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w8-20020a63f508000000b0053424040bb7si7332563pgh.298.2023.05.27.23.22.41; Sat, 27 May 2023 23:22:56 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229498AbjE1F05 (ORCPT + 99 others); Sun, 28 May 2023 01:26:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229437AbjE1F0r (ORCPT ); Sun, 28 May 2023 01:26:47 -0400 Received: from mammoth.local.home (cpe-172-100-189-27.stny.res.rr.com [172.100.189.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id EC282E1; Sat, 27 May 2023 22:26:40 -0700 (PDT) Received: by mammoth.local.home (Postfix, from userid 5657) id C8B2D300CB6; Sun, 28 May 2023 01:17:53 -0400 (EDT) From: Steven Rostedt To: LKML , Linux trace kernel Cc: Masami Hiramatsu , Mark Rutland , "Steven Rostedt (Google)" Subject: [PATCH 3/5] tracing: Make tracing_selftest_running/delete nops when not used Date: Sun, 28 May 2023 01:17:40 -0400 Message-Id: <20230528051742.1325503-4-rostedt@goodmis.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230528051742.1325503-1-rostedt@goodmis.org> References: <20230528051742.1325503-1-rostedt@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, PDS_RDNS_DYNAMIC_FP,RCVD_IN_PBL,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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?1767117922202317873?= X-GMAIL-MSGID: =?utf-8?q?1767117922202317873?= From: "Steven Rostedt (Google)" There's no reason to test the condition variables tracing_selftest_running or tracing_selftest_delete when tracing selftests are not enabled. Make them define 0s when not the selftests are not configured in. Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 70f2b511b9cd..004f5f99e943 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -60,6 +60,7 @@ */ bool ring_buffer_expanded; +#ifdef CONFIG_FTRACE_STARTUP_TEST /* * We need to change this state when a selftest is running. * A selftest will lurk into the ring-buffer to count the @@ -75,7 +76,6 @@ static bool __read_mostly tracing_selftest_running; */ bool __read_mostly tracing_selftest_disabled; -#ifdef CONFIG_FTRACE_STARTUP_TEST void __init disable_tracing_selftest(const char *reason) { if (!tracing_selftest_disabled) { @@ -83,6 +83,9 @@ void __init disable_tracing_selftest(const char *reason) pr_info("Ftrace startup test is disabled due to %s\n", reason); } } +#else +#define tracing_selftest_running 0 +#define tracing_selftest_disabled 0 #endif /* Pipe tracepoints to printk */ From patchwork Sun May 28 05:17:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 99876 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp777751vqr; Sat, 27 May 2023 23:27:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7MvaLyzHKcI085VGfNnsdRKkVbxlAORarcjUw2PdHQw2WghKXRvHCH66s9diLMlDYqwjVI X-Received: by 2002:a05:6a20:26b0:b0:10c:5745:3f4e with SMTP id h48-20020a056a2026b000b0010c57453f4emr4313300pze.56.1685255245794; Sat, 27 May 2023 23:27:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685255245; cv=none; d=google.com; s=arc-20160816; b=wqsEgLm8TlQR3obXm9MwRbG7Rwx2DrhLnrYD8/V23MZWqXRrim0l+jMUvmt/kf2PTt ImbByPdBRYh5kGaC+l7PRvrKNWb9Txorm3Ii7600f1eFsorATs85ydn90Kax0T3gWM0I yjJLOT2r4gJct91ECBQG3WxQm5Edw67lfxNpBc1Gght5pfhFWroB3MKBLDqvihwq5/xB oYGqydw1+ClemIcq28xA0MxKW+Y1oD9Kbi1Z1ZP6rHtZsDJ2x5kVGIUx2vZKiOIcIKm8 iGnaDb6SsB4pEqNydOnWVYaaPHajvT6h2I2e6onlyIOdBbX29p3z5QM7Zl/IcneGzLlM qLPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=qB/CuY0C3mMd2tLQICo6ra6b/WPH67iMZOq3bf6a71w=; b=piSi0MjhsD0ofOSusbqdlch7kkFfMM/2qwvKTc2cSHuQGHQOxNGm0nz4IEz4evz6R3 nkQapxANGPTFY/qGYfcgPzwCNj56HhwC/pzY0xKSHba5hH6hYclXEoKTQe/TTC/E3MJ2 fLV3e/zbR89qJ9+Il2icyoHbppcfxbVAGzwGdz1F6XUzu03i6F884YorRWJ+sp2MUfrU O6NUyvxftbfQ+hTJvdTlX9USfmcKSe1OGcgydqmFfNqNY7IRiAuyaLCcaVwZEWgGHL8H Q7Sco8UNiAlggXfDthNfigXqWr26+YxjQ3+1mI31l3uFvfm8Ktw1nBvwCfR3Dr3rz1ur RzvQ== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w8-20020a63f508000000b0053424040bb7si7332563pgh.298.2023.05.27.23.27.10; Sat, 27 May 2023 23:27:25 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229518AbjE1F1C (ORCPT + 99 others); Sun, 28 May 2023 01:27:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229472AbjE1F0r (ORCPT ); Sun, 28 May 2023 01:26:47 -0400 Received: from mammoth.local.home (cpe-172-100-189-27.stny.res.rr.com [172.100.189.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B7A33DE; Sat, 27 May 2023 22:26:40 -0700 (PDT) Received: by mammoth.local.home (Postfix, from userid 5657) id CF898300CD5; Sun, 28 May 2023 01:17:53 -0400 (EDT) From: Steven Rostedt To: LKML , Linux trace kernel Cc: Masami Hiramatsu , Mark Rutland , "Steven Rostedt (Google)" Subject: [PATCH 4/5] tracing: Only make selftest conditionals affect the global_trace Date: Sun, 28 May 2023 01:17:41 -0400 Message-Id: <20230528051742.1325503-5-rostedt@goodmis.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230528051742.1325503-1-rostedt@goodmis.org> References: <20230528051742.1325503-1-rostedt@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, PDS_RDNS_DYNAMIC_FP,RCVD_IN_PBL,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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?1767118204452878913?= X-GMAIL-MSGID: =?utf-8?q?1767118204452878913?= From: "Steven Rostedt (Google)" The tracing_selftest_running and tracing_selftest_disabled variables were to keep trace_printk() and other writes from affecting the tracing selftests, as the tracing selftests would examine the ring buffer to see if it contained what it expected or not. trace_printk() and friends could add to the ring buffer and cause the selftests to fail (and then disable the tracer that was being tested). To keep that from happening, these variables were added and would keep trace_printk() and friends from writing to the ring buffer while the tests were going on. But this was only the top level ring buffer (owned by the global_trace instance). There is no reason to prevent writing into ring buffers of other instances via the trace_array_printk() and friends. For the functions that could be used by other instances, check if the global_trace is the tracer instance that is being written to before deciding to not allow the write. Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 004f5f99e943..64a4dde073ef 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1054,7 +1054,10 @@ int __trace_array_puts(struct trace_array *tr, unsigned long ip, if (!(tr->trace_flags & TRACE_ITER_PRINTK)) return 0; - if (unlikely(tracing_selftest_running || tracing_disabled)) + if (unlikely(tracing_selftest_running && tr == &global_trace)) + return 0; + + if (unlikely(tracing_disabled)) return 0; alloc = sizeof(*entry) + size + 2; /* possible \n added */ @@ -3512,7 +3515,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, unsigned int trace_ctx; char *tbuffer; - if (tracing_disabled || tracing_selftest_running) + if (tracing_disabled) return 0; /* Don't pollute graph traces with trace_vprintk internals */ @@ -3560,6 +3563,9 @@ __printf(3, 0) int trace_array_vprintk(struct trace_array *tr, unsigned long ip, const char *fmt, va_list args) { + if (tracing_selftest_running && tr == &global_trace) + return 0; + return __trace_array_vprintk(tr->array_buffer.buffer, ip, fmt, args); } From patchwork Sun May 28 05:17:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 99874 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp763844vqr; Sat, 27 May 2023 22:45:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ISo7REtITWXrkJQXIYJKPj/YMvHSE5Hg6ikFEsqNA/truBhGZCW2El1mZIk1L7fKVXxo/ X-Received: by 2002:a17:902:f687:b0:1b0:1d7b:ed33 with SMTP id l7-20020a170902f68700b001b01d7bed33mr6631331plg.69.1685252755584; Sat, 27 May 2023 22:45:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685252755; cv=none; d=google.com; s=arc-20160816; b=yjclqUbvO2TjN5o8oAGFOZMKqI4XtvQJN/N+FhjBrCG8d/uodLlJuV+VBaTWR2e805 z1HfzaYwGtl+xAdm2loV2FVMOxxW7ShXWFHWueE6Uuwvi60ngBYpKRT1e8+oiB3BXqEX 08Zyu87zKMjZ4ZueBD5M5KUD5wQcgt8wM2RtW1aoreslK6OQrdhqRxorrcmquqlz3Sq3 thzbI6V1RBXsb4DlXK7JyVe2MENxNDtwYBSPC/gLmtwfxRawagp1kSTEBar1/3RfGpvG 8Ve58yTFdiLMiAhHrhu5hhDSx2AyAgkxb+ZeBXV4a1I/eZ9cPooOysfg3ya0RnzbGil1 ZKow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NNdC3kqZxmu0p/NKkaMX6wQm7QKMNe9qlBseZo36tY8=; b=bXGtRm7wJlgOD2n1VtCsWKV4yc2cR3shbQl2OZppYLXaVcxLn8Asluf1BDAt67gYY7 gLicH4dKmOuPy8RhT6xGxjuS7Omw1V1jLPAHdZWw8/NeELMRLrGyL8RN+ogGS39AhADc ng8c5ltz+zujpR4Ft2E8mtxVOAUF0T3osWtfkcyZyb82AIwQ6xXtYFrHXBFlqsVfK5pn uqyapJuMWb1jwh49eyAZbigzojrwvTsfjDbLhVjS1OOx2AyQxPzsA/Sx/NxzAqyfWEDM vKXTBwu2+OZxW997YG2ut6pYbW7G6RiP3UmrUEBNtdGXb37F2xfbnf9b2CJ8ans61KZw Ua+A== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x5-20020a1709028ec500b001a699fc81e8si7496145plo.98.2023.05.27.22.45.37; Sat, 27 May 2023 22:45:55 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229491AbjE1F0x (ORCPT + 99 others); Sun, 28 May 2023 01:26:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229470AbjE1F0r (ORCPT ); Sun, 28 May 2023 01:26:47 -0400 X-Greylist: delayed 525 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sat, 27 May 2023 22:26:40 PDT Received: from mammoth.local.home (cpe-172-100-189-27.stny.res.rr.com [172.100.189.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 94AC7D8; Sat, 27 May 2023 22:26:40 -0700 (PDT) Received: by mammoth.local.home (Postfix, from userid 5657) id D650C30113E; Sun, 28 May 2023 01:17:53 -0400 (EDT) From: Steven Rostedt To: LKML , Linux trace kernel Cc: Masami Hiramatsu , Mark Rutland , "Steven Rostedt (Google)" Subject: [PATCH 5/5] tracing: Have function_graph selftest call cond_resched() Date: Sun, 28 May 2023 01:17:42 -0400 Message-Id: <20230528051742.1325503-6-rostedt@goodmis.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230528051742.1325503-1-rostedt@goodmis.org> References: <20230528051742.1325503-1-rostedt@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, PDS_RDNS_DYNAMIC_FP,RCVD_IN_PBL,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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?1767115593527668119?= X-GMAIL-MSGID: =?utf-8?q?1767115593527668119?= From: "Steven Rostedt (Google)" When all kernel debugging is enabled (lockdep, KSAN, etc), the function graph enabling and disabling can take several seconds to complete. The function_graph selftest enables and disables function graph tracing several times. With full debugging enabled, the soft lockup watchdog was triggering because the selftest was running without ever scheduling. Add cond_resched() throughout the test to make sure it does not trigger the soft lockup detector. Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_selftest.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c index a931d9aaea26..529590499b1f 100644 --- a/kernel/trace/trace_selftest.c +++ b/kernel/trace/trace_selftest.c @@ -848,6 +848,12 @@ trace_selftest_startup_function_graph(struct tracer *trace, } #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS + /* + * These tests can take some time to run. Make sure on non PREEMPT + * kernels, we do not trigger the softlockup detector. + */ + cond_resched(); + tracing_reset_online_cpus(&tr->array_buffer); set_graph_array(tr); @@ -869,6 +875,8 @@ trace_selftest_startup_function_graph(struct tracer *trace, if (ret) goto out; + cond_resched(); + ret = register_ftrace_graph(&fgraph_ops); if (ret) { warn_failed_init_tracer(trace, ret); @@ -891,6 +899,8 @@ trace_selftest_startup_function_graph(struct tracer *trace, if (ret) goto out; + cond_resched(); + tracing_start(); if (!ret && !count) {