Re: [PATCH] perf test: Compile named_threads workload with -O0
From: James Clark
Date: Fri Jun 12 2026 - 04:25:16 EST
On 11/06/2026 7:54 pm, David Laight wrote:
On Thu, 11 Jun 2026 12:13:46 +0100
James Clark <james.clark@xxxxxxxxxx> wrote:
The work loop relies on the compiler not optimizing it away, although
named_threads_work is not static for that reason, the compiler could
still do it.
Isn't in enough to put barrier() in the loop?
David
Probably, but I don't think it would make a difference for this specific test workload, and I don't think that style has ever been used for any of the Perf tests.
I think Sashiko's comment leading to this was overly pedantic, neither GCC or Clang optimize this away even with -O2. So in this specific case it was only fixing a hypothetical which is why I didn't add a fixes tag. Although I admit there is some chance it could happen with other changes.
However, I think -O0 is the appropriate fix for a workload because it makes the stacks and order of execution predictable, which is what the tests look at. And that also has the effect of guaranteeing this isn't optimized away, so we probably don't need both.
Thanks
James
Fix it by compiling without optimization. Also add -fno-inline for
consistency and in case anyone wants to look at callstacks.
Signed-off-by: James Clark <james.clark@xxxxxxxxxx>
---
One trailing Sashiko fix from the "perf cs-etm: Queue context packets
for frontend" patch series that has been applied already.
---
tools/perf/tests/workloads/Build | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/tests/workloads/Build b/tools/perf/tests/workloads/Build
index 75b377934a0e..7bb4b9829ba2 100644
--- a/tools/perf/tests/workloads/Build
+++ b/tools/perf/tests/workloads/Build
@@ -26,3 +26,4 @@ CFLAGS_datasym.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
CFLAGS_traploop.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
CFLAGS_inlineloop.o = -g -O2
CFLAGS_deterministic.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
+CFLAGS_named_threads.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
---
base-commit: 7336514f41e75d44782fee7e0990d4195a3d3161
change-id: 20260611-james-cs-unformatted-per-thread-fix-followup-babf28a4e640
Best regards,