From patchwork Wed Apr 5 02:21:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 79432 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp11918vqo; Tue, 4 Apr 2023 19:25:07 -0700 (PDT) X-Google-Smtp-Source: AKy350YPRADqydAVbVjB3GLkaKOLBvVTB1QgtDidyqElqM82IT2kOhBMnsVzjqBq+8uJTBZrmtdu X-Received: by 2002:a17:902:e1d1:b0:1a2:911a:2f35 with SMTP id t17-20020a170902e1d100b001a2911a2f35mr4088454pla.15.1680661506983; Tue, 04 Apr 2023 19:25:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680661506; cv=none; d=google.com; s=arc-20160816; b=Oc7LWpIM8h8YZSUFpz9DS8DB1ZKbQJhPdVBAkSyj8iE2CToPt7Gn6viXBiK/GHM8iE EfchpzrtCGiNQPoHbzsutsWWYM3mtrO6cXafhWRddZnSFzMRpcG8QqrEtE3ljv2iNk7S 9TpJQThpFGBHlqQi/M2q++ZgD2FpLzQv7fHXgUfPYmk+EgyWpv/oYnNaGUh/e6XA5je8 fhlNt0LWLIyvfvMVC/nbo7AofCzz5Pr84zfyZtRmG3pIauX/Q/aiMwN5286eWk3ARzcz WkDHHEjdE+XFcmqD5p40ukoQ1XmazvDA098SHRdqgHRX4l621F6CI6hIPLNmDOyiBRPw qvpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=5mSuhU9e7YjMVXcRNrSfjquhayvt+QPK7+wykMM9jfk=; b=vf6c6DCLqeqsnT2YQpoNsmrbpPIVcMecacSMVghO7iG6nRiYR8+9V43NJmox/G3xOq d2A13MVin2eYLWb4yFI02cCr6B0/xrJPcWOLu3bcdGNeeO+31Lm08HWfPFm0kPaciP/0 K7hjr2Iu258Z6Dc7WU9swvzTfrtchHrV+Z9zRSBYHBsUNDtgIQgPfU9mCLjzbQXsSnxx pWrlWrRBh2ogFYxDXCl3F7iLsKpYRpYLBlHvUZT/NJYpeyaY0ZrUt5yKZ3Kma+CV9cTO 201GqvmmqR5SLQdTBArXgAsR+rkflmTSY/GcMcombvZES+sBsFRQLUV/WMD0UP9tO90N QwTg== 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 h15-20020a170902ac8f00b0019ea0e227f0si11268987plr.296.2023.04.04.19.24.55; Tue, 04 Apr 2023 19:25:06 -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 S236720AbjDECXu (ORCPT + 99 others); Tue, 4 Apr 2023 22:23:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235302AbjDECXo (ORCPT ); Tue, 4 Apr 2023 22:23:44 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 319821BC; Tue, 4 Apr 2023 19:23:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B7C0463A24; Wed, 5 Apr 2023 02:23:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23C4DC4339C; Wed, 5 Apr 2023 02:23:43 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1pjsoH-000hVF-2o; Tue, 04 Apr 2023 22:23:41 -0400 Message-ID: <20230405022341.688730321@goodmis.org> User-Agent: quilt/0.66 Date: Tue, 04 Apr 2023 22:21:14 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ross Zwisler , stable@vger.kernel.org Subject: [PATCH 1/2 v2] tracing: Have tracing_snapshot_instance_cond() write errors to the appropriate instance References: <20230405022113.860447811@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS 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?1762301320414255004?= X-GMAIL-MSGID: =?utf-8?q?1762301320414255004?= From: "Steven Rostedt (Google)" If a trace instance has a failure with its snapshot code, the error message is to be written to that instance's buffer. But currently, the message is written to the top level buffer. Worse yet, it may also disable the top level buffer and not the instance that had the issue. Cc: stable@vger.kernel.org Fixes: 2824f50332486 ("tracing: Make the snapshot trigger work with instances") Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 0a7ea02c9f08..93740a9370c6 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1149,22 +1149,22 @@ static void tracing_snapshot_instance_cond(struct trace_array *tr, unsigned long flags; if (in_nmi()) { - internal_trace_puts("*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n"); - internal_trace_puts("*** snapshot is being ignored ***\n"); + trace_array_puts(tr, "*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n"); + trace_array_puts(tr, "*** snapshot is being ignored ***\n"); return; } if (!tr->allocated_snapshot) { - internal_trace_puts("*** SNAPSHOT NOT ALLOCATED ***\n"); - internal_trace_puts("*** stopping trace here! ***\n"); - tracing_off(); + trace_array_puts(tr, "*** SNAPSHOT NOT ALLOCATED ***\n"); + trace_array_puts(tr, "*** stopping trace here! ***\n"); + tracer_tracing_off(tr); return; } /* Note, snapshot can not be used when the tracer uses it */ if (tracer->use_max_tr) { - internal_trace_puts("*** LATENCY TRACER ACTIVE ***\n"); - internal_trace_puts("*** Can not use snapshot (sorry) ***\n"); + trace_array_puts(tr, "*** LATENCY TRACER ACTIVE ***\n"); + trace_array_puts(tr, "*** Can not use snapshot (sorry) ***\n"); return; } From patchwork Wed Apr 5 02:21:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 79433 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp13208vqo; Tue, 4 Apr 2023 19:29:35 -0700 (PDT) X-Google-Smtp-Source: AKy350YmjF2+iNGSn1W6lFpey8MhEA1krgSyCg9w8ZEcEAiWTu95j3BTUzC4urxp6VgL+jvuyVbY X-Received: by 2002:a17:906:6d6:b0:8f6:5a70:cccc with SMTP id v22-20020a17090606d600b008f65a70ccccmr1501662ejb.66.1680661775419; Tue, 04 Apr 2023 19:29:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680661775; cv=none; d=google.com; s=arc-20160816; b=x8ymGhFJ/n2QNaU/yfIURoSDd86xbhzTIRcowdhBiAF85FYeyvnJHwDs9LxN+FTiuM jDc+QvCLU8Ll92nTXh6XTssa6A3D3U9pb1BFwZ6wXrpXGFoPHqBBNwKHoIkDfL3m1Epy 90tkT6zO9tP3DdFOWbaBU8N6TlB7d3Hrq4PxkuZCiTjE3VUGPCZtjpUNX0vgwUox8/HJ VNLEZzpohw0mE38qUZZ3pdaaPVnAlZCgkceK7IKTwK4MRE8gFZsXugAm/Y3qTx5rgBvH dK8mx94KQHDZTR3cVaAPUOQECycrylidaSQSrp7G2CMYgx4cAdo+pH6+B2v9GVrnYuGi tyaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=fwRbmplwV6PzqCn5hv6PV93bWVrYQQVpzsuhmxJrKSg=; b=THqisPapPvnXHdRKqHLwD1IEk6uQeOGM5DQNpXRU7sZFy3pAGIOXEpMASdBOlZkLKx J6uAvKFNl+O5iVZMEqlQk4AkUfhLhmlCgX0lKEs0d42WQdeGh03LaY/ZijskwcCJj7dT Mz5XNMho9WoVbzw45EI15auR/l/0xECnk+n9VisfFI30nFdEaQP8ge81FI06sMiMG9Uk eDPojyIk7m8oXmriCns8thZfriOq8ruxJFww8JfkFYcGlc7F6KrFDpyXWTTBAfiOkFns hCCDukJxkGqgT+HrSUlVY98fmXf6Ff0JMKvVTs65/m2lqNXXyfgccL8OVCnEwssXK3pf djlQ== 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 x2-20020a170906804200b0093e5bd9064esi1804204ejw.482.2023.04.04.19.29.11; Tue, 04 Apr 2023 19:29:35 -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 S236532AbjDECXw (ORCPT + 99 others); Tue, 4 Apr 2023 22:23:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236548AbjDECXp (ORCPT ); Tue, 4 Apr 2023 22:23:45 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39B282106; Tue, 4 Apr 2023 19:23:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C022B60DD5; Wed, 5 Apr 2023 02:23:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A30CC4339E; Wed, 5 Apr 2023 02:23:43 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1pjsoI-000hVn-0E; Tue, 04 Apr 2023 22:23:42 -0400 Message-ID: <20230405022341.895334039@goodmis.org> User-Agent: quilt/0.66 Date: Tue, 04 Apr 2023 22:21:15 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ross Zwisler , stable@vger.kernel.org Subject: [PATCH 2/2 v2] tracing: Fix ftrace_boot_snapshot command line logic References: <20230405022113.860447811@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS 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?1762301602127116328?= X-GMAIL-MSGID: =?utf-8?q?1762301602127116328?= From: "Steven Rostedt (Google)" The kernel command line ftrace_boot_snapshot by itself is supposed to trigger a snapshot at the end of boot up of the main top level trace buffer. A ftrace_boot_snapshot=foo will do the same for an instance called foo that was created by trace_instance=foo,... The logic was broken where if ftrace_boot_snapshot was by itself, it would trigger a snapshot for all instances that had tracing enabled, regardless if it asked for a snapshot or not. When a snapshot is requested for a buffer, the buffer's tr->allocated_snapshot is set to true. Use that to know if a trace buffer wants a snapshot at boot up or not. Since the top level buffer is part of the ftrace_trace_arrays list, there's no reason to treat it differently than the other buffers. Just iterate the list if ftrace_boot_snapshot was specified. Cc: stable@vger.kernel.org Fixes: 9c1c251d670bc ("tracing: Allow boot instances to have snapshot buffers") Signed-off-by: Steven Rostedt (Google) --- Changes since v1: https://lkml.kernel.org/r/20230404230308.501833715@goodmis.org - Protect use of tr->allocated_snapshot around #ifdef TRACER_MAX_TRACE kernel/trace/trace.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 93740a9370c6..36a6037823cd 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -10394,19 +10394,20 @@ __init static int tracer_alloc_buffers(void) void __init ftrace_boot_snapshot(void) { +#ifdef CONFIG_TRACER_MAX_TRACE struct trace_array *tr; - if (snapshot_at_boot) { - tracing_snapshot(); - internal_trace_puts("** Boot snapshot taken **\n"); - } + if (!snapshot_at_boot) + return; list_for_each_entry(tr, &ftrace_trace_arrays, list) { - if (tr == &global_trace) + if (!tr->allocated_snapshot) continue; - trace_array_puts(tr, "** Boot snapshot taken **\n"); + tracing_snapshot_instance(tr); + trace_array_puts(tr, "** Boot snapshot taken **\n"); } +#endif } void __init early_trace_init(void)