From nobody Fri Dec 26 07:25:08 2025 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 022C31844 for ; Tue, 9 Jan 2024 00:04:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF756C433F1; Tue, 9 Jan 2024 00:04:15 +0000 (UTC) Date: Mon, 8 Jan 2024 19:05:12 -0500 From: Steven Rostedt To: LKML Cc: Masami Hiramatsu , Mathieu Desnoyers Subject: [for-next][PATCH] tracing histograms: Simplify parse_actions() function Message-ID: <20240108190512.3de55e55@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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git trace/core Head SHA1: 4f1991a92cfe89096b2d1f5583a2e093bdd55c37 Steven Rostedt (Google) (1): tracing histograms: Simplify parse_actions() function ---- kernel/trace/trace_events_hist.c | 49 ++++++++++++++++++++----------------= ---- 1 file changed, 24 insertions(+), 25 deletions(-) --------------------------- commit 4f1991a92cfe89096b2d1f5583a2e093bdd55c37 Author: Steven Rostedt (Google) Date: Sun Jan 7 20:32:58 2024 -0500 tracing histograms: Simplify parse_actions() function =20 The parse_actions() function uses 'len =3D str_has_prefix()' to test wh= ich action is in the string being parsed. But then it goes and repeats the logic for each different action. This logic can be simplified and duplicate code can be removed as 'len' contains the length of the found prefix which should be used for all actions. =20 Link: https://lore.kernel.org/all/20240107112044.6702cb66@gandalf.local= .home/ Link: https://lore.kernel.org/linux-trace-kernel/20240107203258.37e26d2= b@gandalf.local.home =20 Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Andy Shevchenko Cc: Tom Zanussi Signed-off-by: Steven Rostedt (Google) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index 5ecf3c8bde20..6ece1308d36a 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -4805,36 +4805,35 @@ static int parse_actions(struct hist_trigger_data *= hist_data) int len; =20 for (i =3D 0; i < hist_data->attrs->n_actions; i++) { + enum handler_id hid =3D 0; + char *action_str; + str =3D hist_data->attrs->action_str[i]; =20 - if ((len =3D str_has_prefix(str, "onmatch("))) { - char *action_str =3D str + len; + if ((len =3D str_has_prefix(str, "onmatch("))) + hid =3D HANDLER_ONMATCH; + else if ((len =3D str_has_prefix(str, "onmax("))) + hid =3D HANDLER_ONMAX; + else if ((len =3D str_has_prefix(str, "onchange("))) + hid =3D HANDLER_ONCHANGE; =20 - data =3D onmatch_parse(tr, action_str); - if (IS_ERR(data)) { - ret =3D PTR_ERR(data); - break; - } - } else if ((len =3D str_has_prefix(str, "onmax("))) { - char *action_str =3D str + len; + action_str =3D str + len; =20 - data =3D track_data_parse(hist_data, action_str, - HANDLER_ONMAX); - if (IS_ERR(data)) { - ret =3D PTR_ERR(data); - break; - } - } else if ((len =3D str_has_prefix(str, "onchange("))) { - char *action_str =3D str + len; + switch (hid) { + case HANDLER_ONMATCH: + data =3D onmatch_parse(tr, action_str); + break; + case HANDLER_ONMAX: + case HANDLER_ONCHANGE: + data =3D track_data_parse(hist_data, action_str, hid); + break; + default: + data =3D ERR_PTR(-EINVAL); + break; + } =20 - data =3D track_data_parse(hist_data, action_str, - HANDLER_ONCHANGE); - if (IS_ERR(data)) { - ret =3D PTR_ERR(data); - break; - } - } else { - ret =3D -EINVAL; + if (IS_ERR(data)) { + ret =3D PTR_ERR(data); break; }