Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp3271422rdh; Mon, 27 Nov 2023 09:58:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IFKT/oyoM7KJXYYeXexKAxLN3kIWn+h5xD+94FECbK4Sq5z1MvI1qSdrusDG5DQZoTLT7pd X-Received: by 2002:a05:6a00:1147:b0:6cb:42ac:9b69 with SMTP id b7-20020a056a00114700b006cb42ac9b69mr12681001pfm.25.1701107894009; Mon, 27 Nov 2023 09:58:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701107893; cv=none; d=google.com; s=arc-20160816; b=mZSaDnPGQgcl2xoa9qTVCPNnslXggIwgJo8FVx5xl941Tbxd/mF1uhL4pKZ9rytEaw D5gjPzMc5CQQbAhbLJoyIj+vohrxWlj2LdAy0aW3wHN7HJ7MB3s6nNotecN3vSaBXXUK TAlyP+WUlwDum0/ETyVYgOKXY+pz2EBjK98KiLMIf3435Gay9FgygInZQhFG0itKeAsR RvCidCHzfbc1Dy/rsjTo5ZT5i28kT74b+3dxMnJB9OmE0rqxpKXPXny8UKQLfOoTerEK QM6K6vhwpJuRZo9nyK5ckiaoQW6gMq+N7R6qkROJeE28jXVS3JQRzaX7zJImYjQKAG6w 6QDQ== 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:subject:cc:to:from:date; bh=jy4wKpzH6YXGUWzI6eGu99rx96rPYFxJgJ5NxWyVLQc=; fh=Y3gvkCYGIKm1p3xKiYKKjdPJzz3c7vS/1kHLUuaMIOs=; b=f+WaFa6VthithN0HmQjYx/iQpCvmizw7XTUChtgF1DH+nbNXd3zz5jtliZ/kAQRUHZ Oy6rE0/m/TlnoMimXrNiWrOoN2cOIWOSuEdPiSdTGXbFryXQLbPgmcB3iWXTOJYQzspW xnNB9L7+7cUvD4MZoXNQeP+0weRIzVGMdwsWOqlJZQe9h+6Xbksh85Aymfm1yswlQolO 2pwBGx5lvCgh3VbyreQ4eeUCIDcEYGz4h6zUFigohnTW2WQphjmlr3aZKtj5ELin/R4W IKBCT/k16w3uVxfeZ4OvXKu4jdon4xrlt6XghZyosyclae2jPU52r24kG57oL0Q3OCYW B+1A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id e34-20020a635462000000b005c2791fedb4si9896839pgm.21.2023.11.27.09.58.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 09:58:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id C8DFB8080ED2; Mon, 27 Nov 2023 09:58:10 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229599AbjK0R5u (ORCPT + 99 others); Mon, 27 Nov 2023 12:57:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229509AbjK0R5t (ORCPT ); Mon, 27 Nov 2023 12:57:49 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C51F612C for ; Mon, 27 Nov 2023 09:57:55 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0F7CC433C7; Mon, 27 Nov 2023 17:57:54 +0000 (UTC) Date: Mon, 27 Nov 2023 12:58:15 -0500 From: Steven Rostedt To: Petr Pavlu Cc: mhiramat@kernel.org, mathieu.desnoyers@efficios.com, zhengyejian1@huawei.com, linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] tracing: Disable events in reverse order of their enable operation Message-ID: <20231127125815.4a4d06c6@gandalf.local.home> In-Reply-To: <20231127151248.7232-3-petr.pavlu@suse.com> References: <20231127151248.7232-1-petr.pavlu@suse.com> <20231127151248.7232-3-petr.pavlu@suse.com> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 27 Nov 2023 09:58:11 -0800 (PST) On Mon, 27 Nov 2023 16:12:48 +0100 Petr Pavlu wrote: > Make the disable operation in __ftrace_event_enable_disable() use the > reverse order of the respective enable operation. > > This has two minor benefits: > * Disabling of buffered events via trace_buffered_event_disable() is > done after unregistering the trace event. It closes a small window > where an event would be still registered and could be hit, but would > unnecessarily go directly to a ring buffer. There's little benefit to the above. Going to the ring buffer and reverting it is just a bit more expensive, but should not be an issue with this small window. > * The SOFT_DISABLED flag is now consistently set only when SOFT_MODE is > also set. This code is a bit fragile, and I rather not change the logic. There's a lot of corner cases. I'm not saying that this is a bad change, I just don't want to add it and find out later it broke one of the corner cases. To add this would require an analysis that every input produces the same output with and without this change. If you want to make a table showing all inputs between soft_disable and the flags, and show that the result produces the same updates, I'll then reconsidered applying this. Thanks! -- Steve > > Signed-off-by: Petr Pavlu > --- > kernel/trace/trace_events.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c > index f29e815ca5b2..5f14d68a0ced 100644 > --- a/kernel/trace/trace_events.c > +++ b/kernel/trace/trace_events.c > @@ -633,9 +633,6 @@ static int __ftrace_event_enable_disable(struct trace_event_file *file, > if (atomic_dec_return(&file->sm_ref) > 0) > break; > disable = file->flags & EVENT_FILE_FL_SOFT_DISABLED; > - clear_bit(EVENT_FILE_FL_SOFT_MODE_BIT, &file->flags); > - /* Disable use of trace_buffered_event */ > - trace_buffered_event_disable(); > } else > disable = !(file->flags & EVENT_FILE_FL_SOFT_MODE); > > @@ -653,11 +650,17 @@ static int __ftrace_event_enable_disable(struct trace_event_file *file, > > call->class->reg(call, TRACE_REG_UNREGISTER, file); > } > - /* If in SOFT_MODE, just set the SOFT_DISABLE_BIT, else clear it */ > - if (file->flags & EVENT_FILE_FL_SOFT_MODE) > - set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); > - else > + > + if (soft_disable) { > + /* Complete going out of SOFT_MODE */ > clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); > + clear_bit(EVENT_FILE_FL_SOFT_MODE_BIT, &file->flags); > + /* Disable use of trace_buffered_event */ > + trace_buffered_event_disable(); > + } else if (file->flags & EVENT_FILE_FL_SOFT_MODE) { > + /* If in SOFT_MODE, just set the SOFT_DISABLE_BIT */ > + set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); > + } > break; > case 1: > /*