Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf test: Remove atomics from test_loop to avoid test failures

The current use of atomics can lead to test failures, as tests (such as
tests/shell/record.sh) search for samples with "test_loop" as the
top-most stack frame, but find frames related to the atomic operation
(e.g. __aarch64_ldadd4_relax).

This change simply removes the "count" variable, as it is not necessary.

Fixes: 1962ab6f6e0b39e4 ("perf test workload thloop: Make count increments atomic")
Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Nick Forrington <nick.forrington@arm.com>
Acked-by: Leo Yan <leo.yan@linaro.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20231102162225.50028-1-nick.forrington@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Nick Forrington and committed by
Arnaldo Carvalho de Melo
72b4ca7e 280b4e4a

+1 -3
+1 -3
tools/perf/tests/workloads/thloop.c
··· 7 7 #include "../tests.h" 8 8 9 9 static volatile sig_atomic_t done; 10 - static volatile unsigned count; 11 10 12 11 /* We want to check this symbol in perf report */ 13 12 noinline void test_loop(void); ··· 18 19 19 20 noinline void test_loop(void) 20 21 { 21 - while (!done) 22 - __atomic_fetch_add(&count, 1, __ATOMIC_RELAXED); 22 + while (!done); 23 23 } 24 24 25 25 static void *thfunc(void *arg)