From patchwork Mon Jan 8 01:32:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 185784 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:37c1:b0:101:2151:f287 with SMTP id y1csp781600dyq; Sun, 7 Jan 2024 17:32:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IGaqD0gpFDfmIQ/expyjhusYkxgB+gGvkzKZs/ZKNBN1+4Egn93cstXYteZYx9yOtW0ygOe X-Received: by 2002:a05:6358:904c:b0:172:ea55:1ae2 with SMTP id f12-20020a056358904c00b00172ea551ae2mr2834772rwf.37.1704677522822; Sun, 07 Jan 2024 17:32:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704677522; cv=none; d=google.com; s=arc-20160816; b=Mma5cqtTzFbNtzDYA6YBaO8AC2os72mjVkx00nr6R6vVhd2ScJSSGtuittPVqCCChV zrkvRg7sh/hycDkE/XVSAd3tC+pIIKLbRqysvVeKPMKO1YEcJcWC41V6zeTJJ2cUS1GG IJfxFunXgFt9ASZ8ORfkXqKEaTfj31OR+Vwyd60tSaeV1mlJkpFK9gmdRYkjtmweGZpU j5MZFU7iCaXG4iFa11zdWjjXBHYWA35wju41qLvZ1lH1CALMA2T4JZjHgN+jrrYJPKb+ XkFItAnxgZ4iYJyTN6LJ+iT5/EWKNtbhITDTQz2l892ogMuzacQKrmwAJaBIJDhSjbp3 4GaQ== 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=gOwMano/b4CP+jsqV1C96ANkRhwdYauZcz+jylXJBNw=; fh=RoeTY7nyqCOYHzaNdWxSPwta4OVZeG+PIDpxLKB7r2E=; b=CMc+g2s6FKc2KOLYfa46yaWzyEXGhCOBjxTbcxAUyAso7EfzkvUqD132xInny3Ocz5 JVtc1W3irhgH9ZNZqF1Y1xexAnkE9F2HWpWuBg1gTCVxomneLrXknkccIyT4DXD3z4PW LH8Rr7gs4zzzCIt2dftARopLylNXMW2UZ2g9zbRlhF8WWoxaDhJSWtcehVsm/anUKhCn Q6E6mfg9qvF0dbrx0Nrle/wVoFVa8gb5u0/9z6VwdoNqC6T1LJBeg8GlxUKsMieaCLVL u5vTiQzhx0FEPvqReu0f+RjQmuPlcuP+I+lLG4NEO+LyoTgXyKGtTWDXp0JgkS4joShM u6pg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-19040-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19040-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id a13-20020a17090ae20d00b0028d0a7bccc2si4747748pjz.63.2024.01.07.17.32.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jan 2024 17:32:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-19040-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-19040-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19040-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 8D3F628116A for ; Mon, 8 Jan 2024 01:32:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4FA1E15CC; Mon, 8 Jan 2024 01:31:48 +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 DB800800; Mon, 8 Jan 2024 01:31:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 787EAC433C8; Mon, 8 Jan 2024 01:31:45 +0000 (UTC) Date: Sun, 7 Jan 2024 20:32:58 -0500 From: Steven Rostedt To: LKML , Linux Trace Kernel Cc: Masami Hiramatsu , Mathieu Desnoyers , Andy Shevchenko , Tom Zanussi Subject: [PATCH] tracing histograms: Simplify parse_actions() function Message-ID: <20240107203258.37e26d2b@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: 1787483938078503001 X-GMAIL-MSGID: 1787483938078503001 From: "Steven Rostedt (Google)" The parse_actions() function uses 'len = str_has_prefix()' to test which 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. Link: https://lore.kernel.org/all/20240107112044.6702cb66@gandalf.local.home/ Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_hist.c | 49 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.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; for (i = 0; i < hist_data->attrs->n_actions; i++) { + enum handler_id hid = 0; + char *action_str; + str = hist_data->attrs->action_str[i]; - if ((len = str_has_prefix(str, "onmatch("))) { - char *action_str = str + len; + if ((len = str_has_prefix(str, "onmatch("))) + hid = HANDLER_ONMATCH; + else if ((len = str_has_prefix(str, "onmax("))) + hid = HANDLER_ONMAX; + else if ((len = str_has_prefix(str, "onchange("))) + hid = HANDLER_ONCHANGE; - data = onmatch_parse(tr, action_str); - if (IS_ERR(data)) { - ret = PTR_ERR(data); - break; - } - } else if ((len = str_has_prefix(str, "onmax("))) { - char *action_str = str + len; + action_str = str + len; - data = track_data_parse(hist_data, action_str, - HANDLER_ONMAX); - if (IS_ERR(data)) { - ret = PTR_ERR(data); - break; - } - } else if ((len = str_has_prefix(str, "onchange("))) { - char *action_str = str + len; + switch (hid) { + case HANDLER_ONMATCH: + data = onmatch_parse(tr, action_str); + break; + case HANDLER_ONMAX: + case HANDLER_ONCHANGE: + data = track_data_parse(hist_data, action_str, hid); + break; + default: + data = ERR_PTR(-EINVAL); + break; + } - data = track_data_parse(hist_data, action_str, - HANDLER_ONCHANGE); - if (IS_ERR(data)) { - ret = PTR_ERR(data); - break; - } - } else { - ret = -EINVAL; + if (IS_ERR(data)) { + ret = PTR_ERR(data); break; }