On Wed, Aug 06, 2025 at 11:17:34AM -0700, Yonghong Song wrote:
SNIP
> > diff --git a/tools/testing/selftests/bpf/Makefile
> > b/tools/testing/selftests/bpf/Makefile
> > index 910d8d6402ef..68cf6a9cf05f 100644
> > --- a/tools/testing/selftests/bpf/Makefile
> > +++ b/tools/testing/selftests/bpf/Makefile
> > @@ -759,6 +759,14 @@ TRUNNER_BPF_BUILD_RULE := $$(error no BPF objects
> > should be built)
> > TRUNNER_BPF_CFLAGS :=
> > $(eval $(call DEFINE_TEST_RUNNER,test_maps))
> > +# Use -O2 optimization to generate SIB addressing usdt argument spec
> > +# Only apply on x86 architecture where SIB addressing is relevant
> > +ifeq ($(ARCH), x86)
> > +$(OUTPUT)/usdt_o2.test.o: CFLAGS:=$(subst O0,O2,$(CFLAGS))
> > +$(OUTPUT)/cpuv4/usdt_o2.test.o: CFLAGS:=$(subst O0,O2,$(CFLAGS))
> > +$(OUTPUT)/no_alu32/usdt_o2.test.o: CFLAGS:=$(subst O0,O2,$(CFLAGS))
> > +endif
>
> I tried your selftest with gcc14 and llvm20 in my environment. See below:
>
> llvm20:
> Displaying notes found in: .note.stapsdt
> Owner Data size Description
> stapsdt 0x0000002f NT_STAPSDT (SystemTap probe
> descriptors)
> Provider: test
> Name: usdt1
> Location: 0x00000000000003ac, Base: 0x0000000000000000, Semaphore:
> 0x0000000000000000
> Arguments: 8@-64(%rbp)
>
> gcc14:
> Displaying notes found in: .note.stapsdt
> Owner Data size Description
> stapsdt 0x00000034 NT_STAPSDT (SystemTap probe
> descriptors)
> Provider: test
> Name: usdt1
> Location: 0x0000000000000334, Base: 0x0000000000000000, Semaphore:
> 0x0000000000000000
> Arguments: 8@array(,%rax,8)
>
> llvm20 and gcc14 generate different usdt patterns. '8@-64(%rbp)' already
> supports so
> with SIB support, the test should pass CI, I think.
I see the same with gcc 15 and clang 20
Arguments: 8@array(,%rax,8)
jirka