tools/perf/tests/workloads/thloop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The count variable is incremented by multiple threads, doing so
without an atomic operation causes thread sanitizer warnings. Switch
to using relaxed atomics.
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/tests/workloads/thloop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/workloads/thloop.c b/tools/perf/tests/workloads/thloop.c
index 29193b75717e..af05269c2eb8 100644
--- a/tools/perf/tests/workloads/thloop.c
+++ b/tools/perf/tests/workloads/thloop.c
@@ -20,7 +20,7 @@ static void sighandler(int sig __maybe_unused)
noinline void test_loop(void)
{
while (!done)
- count++;
+ __atomic_fetch_add(&count, 1, __ATOMIC_RELAXED);
}
static void *thfunc(void *arg)
--
2.39.0.314.g84b9a713c41-goog
On Sat, Jan 14, 2023 at 1:53 PM Ian Rogers <irogers@google.com> wrote: > > The count variable is incremented by multiple threads, doing so > without an atomic operation causes thread sanitizer warnings. Switch > to using relaxed atomics. > > Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/perf/tests/workloads/thloop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/tests/workloads/thloop.c b/tools/perf/tests/workloads/thloop.c > index 29193b75717e..af05269c2eb8 100644 > --- a/tools/perf/tests/workloads/thloop.c > +++ b/tools/perf/tests/workloads/thloop.c > @@ -20,7 +20,7 @@ static void sighandler(int sig __maybe_unused) > noinline void test_loop(void) > { > while (!done) > - count++; > + __atomic_fetch_add(&count, 1, __ATOMIC_RELAXED); Ping. No functional change, cleans up a lot of thread sanitizer issues, the use of __atomic_fetch_add is consistent with other files. Thanks, Ian > } > > static void *thfunc(void *arg) > -- > 2.39.0.314.g84b9a713c41-goog >
© 2016 - 2025 Red Hat, Inc.