perf tests: Fix Tool PMU test segfault
authorJames Clark <james.clark@linaro.org>
Wed, 12 Feb 2025 16:38:56 +0000 (16:38 +0000)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 13 Feb 2025 03:34:56 +0000 (19:34 -0800)
tool_pmu__event_to_str() now handles skipped events by returning NULL,
so it's wrong to re-check for a skip on the resulting string. Calling
tool_pmu__skip_event() with a NULL string results in a segfault so
remove the unnecessary skip to fix it:

  $ perf test -vv "parsing with PMU name"

  12.2: Parsing with PMU name:
  ...
  ---- unexpected signal (11) ----
  12.2: Parsing with PMU name         : FAILED!

Fixes: ee8aef2d2321 ("perf tools: Add skip check in tool_pmu__event_to_str()")
Signed-off-by: James Clark <james.clark@linaro.org>
Reported-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Acked-by: Kan Liang <kan.liang@linux.intel.com>
Tested-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250212163859.1489916-1-james.clark@linaro.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/tests/tool_pmu.c

index 187942b749b7c99bf871dff7bba215ecba793afc..1e900ef92e378010b0d0b675a18271fda1bb0855 100644 (file)
@@ -27,7 +27,7 @@ static int do_test(enum tool_pmu_event ev, bool with_pmu)
        parse_events_error__init(&err);
        ret = parse_events(evlist, str, &err);
        if (ret) {
-               if (tool_pmu__skip_event(tool_pmu__event_to_str(ev))) {
+               if (!tool_pmu__event_to_str(ev)) {
                        ret = TEST_OK;
                        goto out;
                }
@@ -59,7 +59,7 @@ static int do_test(enum tool_pmu_event ev, bool with_pmu)
                }
        }
 
-       if (!found && !tool_pmu__skip_event(tool_pmu__event_to_str(ev))) {
+       if (!found && tool_pmu__event_to_str(ev)) {
                pr_debug("FAILED %s:%d Didn't find tool event '%s' in parsed evsels\n",
                         __FILE__, __LINE__, str);
                ret = TEST_FAIL;