Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp1155505pxm; Wed, 23 Feb 2022 19:44:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJwR87ejKWKMqhrTHVg10y7odNoskBjImeSqmFVow6xzuSCGSilF+Npq+JqhH9jQYEsVyxCc X-Received: by 2002:a17:906:a4b:b0:6d0:fbdd:7cb5 with SMTP id x11-20020a1709060a4b00b006d0fbdd7cb5mr684982ejf.152.1645674271227; Wed, 23 Feb 2022 19:44:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645674271; cv=none; d=google.com; s=arc-20160816; b=eENMmm4sH9Hmlx0F+8c5AojqCth2p94Rp8CqKdV+LCY5UmzQG7nx6i2EZrZ6Y35ETw 5bEG37zBfypIwEKdQmz8SybyU16y0b+/bCRk7ZdSqcCEslXnZLWFDphRjSKW9L5tGeuG OExcthPCLd900QSIx0wzHm+Hp55/P3IC2a+G4DlkA0YNWbJyFvPrQtKXQkFpFb9d3v1Q jT87VvHmCMfoPB/OnMuyCzYo7K4hTlACkV3C7kJpQpt0+QzbXuzltf4CFL0VS5DDgRK9 v/dGBin4ObzZM3XyFHlUjiyxrjGAvXvoB5vifwsLMuRqi0QXkjirmJ5Fdl0/zrY4jD75 VB7A== 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 :message-id:subject:cc:to:from:date; bh=1OfAzosaBfk5wfEoQ6oeyFerSaatjoXT8N2EWQGiGTk=; b=Xuy1M3q5un1cbVu0V7fKxeDNLXAKeoD727CVe/vDu52lPJjuR//s8yYzmdexqQ6i30 8p8b+vvQrCww6p/uMIIenS5Z8PZ3MR05NRKYk6kiojaEXSV992kIl+PjDtvdM6Ki2Dqo 4zeV1ab9+CmBTOCvBWRP14Vz+ZmyVYBpNpMsilOMt4mXT/pEQ6uFptgP3NveMGju237k HmTQUIUflZvOlM/Yc+bePMsqmSW/Iif2O/O9nNkEIFynmsniLhCdASa4uYI3KOWoa+iz +7PkVEGYySCK4N6xeGBdgKLcETJSWjEPaOKh7B/qI4L6LEz9oHy51PagX3l5Ov1twfsS OZ9Q== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cw3si1028989ejc.762.2022.02.23.19.44.08; Wed, 23 Feb 2022 19:44:31 -0800 (PST) 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 S229582AbiBXDjL (ORCPT + 99 others); Wed, 23 Feb 2022 22:39:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229546AbiBXDjJ (ORCPT ); Wed, 23 Feb 2022 22:39:09 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCF27230E6F for ; Wed, 23 Feb 2022 19:38:40 -0800 (PST) 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 7F478616A3 for ; Thu, 24 Feb 2022 03:38:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32072C340E7; Thu, 24 Feb 2022 03:38:39 +0000 (UTC) Date: Wed, 23 Feb 2022 22:38:37 -0500 From: Steven Rostedt To: LKML Cc: Ingo Molnar , Andrew Morton , Daniel Bristot de Oliveira , Tom Zanussi Subject: [PATCH] tracing: Have traceon and traceoff trigger honor the instance Message-ID: <20220223223837.14f94ec3@rorschach.local.home> X-Mailer: Claws Mail 3.17.8 (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=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE 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 From: "Steven Rostedt (Google)" If a trigger is set on an event to disable or enable tracing within an instance, then tracing should be disabled or enabled in the instance and not at the top level, which is confusing to users. Cc: stable@vger.kernel.org Fixes: ae63b31e4d0e2 ("tracing: Separate out trace events from global variables") Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_trigger.c | 52 +++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c index e0d50c9577f3..efe563140f27 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c @@ -1295,6 +1295,16 @@ traceon_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { + struct trace_event_file *file = data->private_data; + + if (file) { + if (tracer_tracing_is_on(file->tr)) + return; + + tracer_tracing_on(file->tr); + return; + } + if (tracing_is_on()) return; @@ -1306,8 +1316,15 @@ traceon_count_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { - if (tracing_is_on()) - return; + struct trace_event_file *file = data->private_data; + + if (file) { + if (tracer_tracing_is_on(file->tr)) + return; + } else { + if (tracing_is_on()) + return; + } if (!data->count) return; @@ -1315,7 +1332,10 @@ traceon_count_trigger(struct event_trigger_data *data, if (data->count != -1) (data->count)--; - tracing_on(); + if (file) + tracer_tracing_on(file->tr); + else + tracing_on(); } static void @@ -1323,6 +1343,16 @@ traceoff_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { + struct trace_event_file *file = data->private_data; + + if (file) { + if (!tracer_tracing_is_on(file->tr)) + return; + + tracer_tracing_off(file->tr); + return; + } + if (!tracing_is_on()) return; @@ -1334,8 +1364,15 @@ traceoff_count_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { - if (!tracing_is_on()) - return; + struct trace_event_file *file = data->private_data; + + if (file) { + if (!tracer_tracing_is_on(file->tr)) + return; + } else { + if (!tracing_is_on()) + return; + } if (!data->count) return; @@ -1343,7 +1380,10 @@ traceoff_count_trigger(struct event_trigger_data *data, if (data->count != -1) (data->count)--; - tracing_off(); + if (file) + tracer_tracing_off(file->tr); + else + tracing_off(); } static int -- 2.34.1