From patchwork Wed Dec 20 16:15:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 181730 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:24d3:b0:fb:cd0c:d3e with SMTP id r19csp2755636dyi; Wed, 20 Dec 2023 08:20:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IH0RLAz9E+4uDEmXS4elh2Aa38VtEx6MdBi2yhLz060u8jwjhvwrGccydsMhwGou8QE0MKV X-Received: by 2002:a50:96c1:0:b0:553:a4a2:2347 with SMTP id z1-20020a5096c1000000b00553a4a22347mr737080eda.131.1703089259072; Wed, 20 Dec 2023 08:20:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703089259; cv=none; d=google.com; s=arc-20160816; b=MyE8fy05m8Z9WzzDnQYDdwf5dJyJxxokYUx42jiPBks8bYEjOs6I4tVx+yRiM+giNa vhaLJnKgH130CuIS6zQEqdwXAABu5EH8I+A+zcuIQvNAFZhmWRuUGSyH6zG6OlCCLlzx PAbHpdIZbOHsASGqjSH5c3uwnYDvnXcwNd9q5QlIOCVqWtb2IrxqheWtcLZnXth48MY0 JeYNV4uiFcuvyRH+WzBsTn/ZG/v7Fv1lI2mges4zXtu2ygK2Wnvdz3u98U2aldBCVWdb 2ECR87SBo0OW3Ef8PuIegotrULYS5/UeCfRxffxKqb/QfhlCHJE06leaA74pWpfMTCZl WMLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:subject:cc:to:from :date; bh=9a4zj6RjXIyXPao9jrKwEkhzvbK7JjQNjgOYF5henuw=; fh=unoDlyULomrZNZh96J71ahciXbDLzcomyDHYQE79WBc=; b=TErvzCeRnu9cCYX8DU/+xeCdYFb+9KM6xeLx9GqTD9hRAW4cPYE4fIoVMmMqUwjsbl 4XKpNxTbOjzwzKv+TKqP6scsy4TjySN4Jrgadmd5Vt4wnLgjkh9p0QefUM6WYOKSxm9x fQOwbtX0KiPM3rq/vHLXW+aLENKQBAeV5XkRzM9yMSmvlKBrWIy4aguV8Aii3pJvCDR1 Bn5bTIROEiBPC/hknqwg1k6u3xWczI8hXe7CysQpuaKO3tXRuxBpTjOvMRsQC6ysiu+G Cb8LetiWlURzQyr99XOvTumHUqXVinGypChgDspQvyPpBwkGQfUkoV4OUgG8ZhooJdI6 ufNA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-7275-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7275-ouuuleilei=gmail.com@vger.kernel.org" Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id g13-20020a056402090d00b00551ccbcb09csi7940498edz.473.2023.12.20.08.20.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 08:20:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-7275-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-7275-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7275-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id A09FA1F21C0E for ; Wed, 20 Dec 2023 16:20:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8A6184D5A3; Wed, 20 Dec 2023 16:14:27 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CEE341862; Wed, 20 Dec 2023 16:14:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F102EC433C9; Wed, 20 Dec 2023 16:14:24 +0000 (UTC) Date: Wed, 20 Dec 2023 11:15:25 -0500 From: Steven Rostedt To: LKML , Linux Trace Kernel Cc: Masami Hiramatsu , Mathieu Desnoyers , Alexander Graf , Tom Zanussi Subject: [PATCH] tracing / synthetic: Disable events after testing in synth_event_gen_test_init() Message-ID: <20231220111525.2f0f49b0@gandalf.local.home> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785818523374199002 X-GMAIL-MSGID: 1785818523374199002 From: "Steven Rostedt (Google)" The synth_event_gen_test module can be built in, if someone wants to run the tests at boot up and not have to load them. The synth_event_gen_test_init() function creates and enables the synthetic events and runs its tests. The synth_event_gen_test_exit() disables the events it created and destroys the events. If the module is builtin, the events are never disabled. The issue is, the events should be disable after the tests are run. This could be an issue if the rest of the boot up tests are enabled, as they expect the events to be in a known state before testing. That known state happens to be disabled. When CONFIG_SYNTH_EVENT_GEN_TEST=y and CONFIG_EVENT_TRACE_STARTUP_TEST=y a warning will trigger: Running tests on trace events: Testing event create_synth_test: Enabled event during self test! ------------[ cut here ]------------ WARNING: CPU: 2 PID: 1 at kernel/trace/trace_events.c:4150 event_trace_self_tests+0x1c2/0x480 Modules linked in: CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc2-test-00031-gb803d7c664d5-dirty #276 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:event_trace_self_tests+0x1c2/0x480 Code: bb e8 a2 ab 5d fc 48 8d 7b 48 e8 f9 3d 99 fc 48 8b 73 48 40 f6 c6 01 0f 84 d6 fe ff ff 48 c7 c7 20 b6 ad bb e8 7f ab 5d fc 90 <0f> 0b 90 48 89 df e8 d3 3d 99 fc 48 8b 1b 4c 39 f3 0f 85 2c ff ff RSP: 0000:ffffc9000001fdc0 EFLAGS: 00010246 RAX: 0000000000000029 RBX: ffff88810399ca80 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffffb9f19478 RDI: ffff88823c734e64 RBP: ffff88810399f300 R08: 0000000000000000 R09: fffffbfff79eb32a R10: ffffffffbcf59957 R11: 0000000000000001 R12: ffff888104068090 R13: ffffffffbc89f0a0 R14: ffffffffbc8a0f08 R15: 0000000000000078 FS: 0000000000000000(0000) GS:ffff88823c700000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 00000001f6282001 CR4: 0000000000170ef0 Call Trace: ? __warn+0xa5/0x200 ? event_trace_self_tests+0x1c2/0x480 ? report_bug+0x1f6/0x220 ? handle_bug+0x6f/0x90 ? exc_invalid_op+0x17/0x50 ? asm_exc_invalid_op+0x1a/0x20 ? tracer_preempt_on+0x78/0x1c0 ? event_trace_self_tests+0x1c2/0x480 ? __pfx_event_trace_self_tests_init+0x10/0x10 event_trace_self_tests_init+0x27/0xe0 do_one_initcall+0xd6/0x3c0 ? __pfx_do_one_initcall+0x10/0x10 ? kasan_set_track+0x25/0x30 ? rcu_is_watching+0x38/0x60 kernel_init_freeable+0x324/0x450 ? __pfx_kernel_init+0x10/0x10 kernel_init+0x1f/0x1e0 ? _raw_spin_unlock_irq+0x33/0x50 ret_from_fork+0x34/0x60 ? __pfx_kernel_init+0x10/0x10 ret_from_fork_asm+0x1b/0x30 This is because the synth_event_gen_test_init() left the synthetic events that it created enabled. By having it disable them after testing, the other selftests will run fine. Cc: stable@vger.kernel.org Fixes: 9fe41efaca084 ("tracing: Add synth event generation test module") Reported-by: Alexander Graf Signed-off-by: Steven Rostedt (Google) Acked-by: Masami Hiramatsu (Google) Tested-by: Alexander Graf --- kernel/trace/synth_event_gen_test.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kernel/trace/synth_event_gen_test.c b/kernel/trace/synth_event_gen_test.c index 8dfe85499d4a..354c2117be43 100644 --- a/kernel/trace/synth_event_gen_test.c +++ b/kernel/trace/synth_event_gen_test.c @@ -477,6 +477,17 @@ static int __init synth_event_gen_test_init(void) ret = test_trace_synth_event(); WARN_ON(ret); + + /* Disable when done */ + trace_array_set_clr_event(gen_synth_test->tr, + "synthetic", + "gen_synth_test", false); + trace_array_set_clr_event(empty_synth_test->tr, + "synthetic", + "empty_synth_test", false); + trace_array_set_clr_event(create_synth_test->tr, + "synthetic", + "create_synth_test", false); out: return ret; }