From nobody Mon Feb 9 05:58:19 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69182C04FE1 for ; Tue, 27 Jun 2023 18:11:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231326AbjF0SLi (ORCPT ); Tue, 27 Jun 2023 14:11:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42908 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230468AbjF0SLH (ORCPT ); Tue, 27 Jun 2023 14:11:07 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D36FF2733 for ; Tue, 27 Jun 2023 11:11:05 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-573d70da2dcso61561297b3.1 for ; Tue, 27 Jun 2023 11:11:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1687889465; x=1690481465; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=HmcwCCrzohBexPPxiwkNS29383WCu9lx0QPsW2KVyZ4=; b=aei3beb4q3x++WPIPe0QnHzZckcCFW4R3vf2GZueNTS8EH1ej5AXfNxSKeKke4OnW4 pA1YiiyKDg4RiHfInlERXtFstvo8F+W0YaAE+KQJjwrFblA/gDRz1CNUUrPC2w2JQil3 /Wra5Ojjv9MsDQI5HT4WZil3DOlquS7Yg0g4ytIrnu96YIlrFydfvyZzAezPCh/AEdFB rRhqPAkPurZjCa/Bls2FsuQpCBCe+AU4YlqrMa6qVUXBaNjbpW5dfNvPrvt+gulyeI6z hZY6zNeqiTqUAdNOa6piRZ3r0WzZRF4/9Mff9lv3m+nnFLcYoEpQVXsLvBCl3X/F32rh wojA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687889465; x=1690481465; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HmcwCCrzohBexPPxiwkNS29383WCu9lx0QPsW2KVyZ4=; b=BSFK5tT1CSR6rWpsO9+f3IHvjRAezngic7YpcaR/QkR8kb5HiEhLQm6I7XA7KwEFZc nyAtoN6eIyzGtBdtY5gK5If6L1BmkbQALJm36cMo7Xfr751E8KOi19I7GGFHbow6Ilmi 8IBqb4vJUEEZBQGCdQm/Mwry18BCALAF7GXmTaDrr1yzCFhI/4rD16QkbluPdIgU9wzM B+PCi2N9ag2nHFIbVRJlOIrCEFcXEn2WMbT9pWT8XC53O/43rpuFQaSMmWpJoo6/3ZM0 5C6HXENQe3sAJj57+Sd1SU8pifYhsjPKN052Ddh7uSfKjtfKLCjWe/w02aGSicAve9q6 vnYw== X-Gm-Message-State: AC+VfDwfG98+cDDykOspbF5fRKnEr5oEQbjJwJrO4tEsMRV4lIQYdkD2 +baiifLNPSO0vAubhlMcUhfPHubNMO4y X-Google-Smtp-Source: ACHHUZ4/a+LchMST3LH5uXgoZ0tXTL1BebqlP5Oj8R+ArkMhvomyHOWsaMi0FEXWPrdUw3IQVWMEMjhABDIT X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:a518:9a69:cf62:b4d9]) (user=irogers job=sendgmr) by 2002:a25:ad9f:0:b0:bce:5d6f:87a with SMTP id z31-20020a25ad9f000000b00bce5d6f087amr7873345ybi.1.1687889465014; Tue, 27 Jun 2023 11:11:05 -0700 (PDT) Date: Tue, 27 Jun 2023 11:10:27 -0700 In-Reply-To: <20230627181030.95608-1-irogers@google.com> Message-Id: <20230627181030.95608-11-irogers@google.com> Mime-Version: 1.0 References: <20230627181030.95608-1-irogers@google.com> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Subject: [PATCH v2 10/13] perf parse-events: Additional error reporting From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Athira Rajeev , Kan Liang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When no events or PMUs match report an error for event_pmu: Before: ``` $ perf stat -e 'asdfasdf' -a sleep 1 Run 'perf list' for a list of valid events Usage: perf stat [] [] -e, --event event selector. use 'perf list' to list available= events ``` After: ``` $ perf stat -e 'asdfasdf' -a sleep 1 event syntax error: 'asdfasdf' \___ Bad event name Unabled to find PMU or event on a PMU of 'asdfasdf' Run 'perf list' for a list of valid events Usage: perf stat [] [] -e, --event event selector. use 'perf list' to list available= events ``` Fixes the inadvertent removal when hybrid parsing was modified. Fixes: ("70c90e4a6b2f perf parse-events: Avoid scanning PMUs before parsing= ") Signed-off-by: Ian Rogers --- tools/perf/util/parse-events.y | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index f090a85c4518..a636a7db6e6f 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y @@ -291,7 +291,6 @@ PE_NAME opt_pmu_config { struct parse_events_state *parse_state =3D _parse_state; struct list_head *list =3D NULL, *orig_terms =3D NULL, *terms=3D NULL; - struct parse_events_error *error =3D parse_state->error; char *pattern =3D NULL; =20 #define CLEANUP \ @@ -303,9 +302,6 @@ PE_NAME opt_pmu_config free(pattern); \ } while(0) =20 - if (error) - error->idx =3D @1.first_column; - if (parse_events_copy_term_list($2, &orig_terms)) { CLEANUP; YYNOMEM; @@ -360,6 +356,14 @@ PE_NAME opt_pmu_config $2 =3D NULL; } if (!ok) { + struct parse_events_error *error =3D parse_state->error; + char *help; + + if (asprintf(&help, "Unabled to find PMU or event on a PMU of '%s'", $1= ) < 0) + help =3D NULL; + parse_events_error__handle(error, @1.first_column, + strdup("Bad event or PMU"), + help); CLEANUP; YYABORT; } @@ -376,9 +380,18 @@ PE_NAME sep_dc int err; =20 err =3D parse_events_multi_pmu_add(_parse_state, $1, NULL, &list); - free($1); - if (err < 0) + if (err < 0) { + struct parse_events_state *parse_state =3D _parse_state; + struct parse_events_error *error =3D parse_state->error; + char *help; + + if (asprintf(&help, "Unabled to find PMU or event on a PMU of '%s'", $1)= < 0) + help =3D NULL; + parse_events_error__handle(error, @1.first_column, strdup("Bad event nam= e"), help); + free($1); PE_ABORT(err); + } + free($1); $$ =3D list; } =20 --=20 2.41.0.162.gfafddb0af9-goog