From: Yonghong Song <yonghong.song@linux.dev>
To: 赵佳炜 <phoenix500526@163.com>
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
bpf@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 2/2] selftests/bpf: Force -O2 for USDT selftests to cover SIB handling logic
Date: Tue, 12 Aug 2025 09:11:45 -0700 [thread overview]
Message-ID: <2559a8cd-b439-43fc-96e4-d5f2941ca4d8@linux.dev> (raw)
In-Reply-To: <65e51538.57aa.1989d162bb8.Coremail.phoenix500526@163.com>
On 8/12/25 12:02 AM, 赵佳炜 wrote:
> Yes, I've tried that but it didn't help. FYI:
>
> $ readelf -nsr usdt_rip
>
>
> Relocation section '.rela.dyn' at offset 0x530 contains 9 entries:
> Offset Info Type Sym. Value Sym. Name + Addend
> 000000003df0 000000000008 R_X86_64_RELATIVE 1150
> 000000003df8 000000000008 R_X86_64_RELATIVE 1110
> 000000004008 000000000008 R_X86_64_RELATIVE 4008
> 000000004018 000000000008 R_X86_64_RELATIVE 1160
> 000000003fd8 000100000006 R_X86_64_GLOB_DAT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0
> 000000003fe0 000200000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_deregisterTM[...] + 0
> 000000003fe8 000300000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ + 0
> 000000003ff0 000400000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_registerTMCl[...] + 0
> 000000003ff8 000500000006 R_X86_64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.2.5 + 0
>
>
> Symbol table '.dynsym' contains 6 entries:
> Num: Value Size Type Bind Vis Ndx Name
> 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
> 1: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _[...]@GLIBC_2.34 (2)
> 2: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterT[...]
> 3: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
> 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMC[...]
> 5: 0000000000000000 0 FUNC WEAK DEFAULT UND [...]@GLIBC_2.2.5 (3)
>
>
> Symbol table '.symtab' contains 42 entries:
> Num: Value Size Type Bind Vis Ndx Name
> 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
> 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o
> 2: 000000000000038c 32 OBJECT LOCAL DEFAULT 4 __abi_tag
> 3: 0000000000000000 0 FILE LOCAL DEFAULT ABS usdt_rip.c
> 4: 0000000000004021 1 OBJECT LOCAL DEFAULT 25 ti
> 5: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
> 6: 00000000000010a0 0 FUNC LOCAL DEFAULT 14 deregister_tm_clones
> 7: 00000000000010d0 0 FUNC LOCAL DEFAULT 14 register_tm_clones
> 8: 0000000000001110 0 FUNC LOCAL DEFAULT 14 __do_global_dtors_aux
> 9: 0000000000004020 1 OBJECT LOCAL DEFAULT 25 completed.0
> 10: 0000000000003df8 0 OBJECT LOCAL DEFAULT 21 __do_global_dtor[...]
> 11: 0000000000001150 0 FUNC LOCAL DEFAULT 14 frame_dummy
> 12: 0000000000003df0 0 OBJECT LOCAL DEFAULT 20 __frame_dummy_in[...]
> 13: 0000000000000000 0 FILE LOCAL DEFAULT ABS damo.c
> 14: 0000000000004022 1 OBJECT LOCAL DEFAULT 25 ti
> 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
> 16: 00000000000020d8 0 OBJECT LOCAL DEFAULT 19 __FRAME_END__
> 17: 0000000000000000 0 FILE LOCAL DEFAULT ABS
> 18: 0000000000003e00 0 OBJECT LOCAL DEFAULT 22 _DYNAMIC
> 19: 0000000000002008 0 NOTYPE LOCAL DEFAULT 18 __GNU_EH_FRAME_HDR
> 20: 0000000000003fc0 0 OBJECT LOCAL DEFAULT 23 _GLOBAL_OFFSET_TABLE_
> 21: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_mai[...]
> 22: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterT[...]
> 23: 0000000000004000 0 NOTYPE WEAK DEFAULT 24 data_start
> 24: 0000000000001160 8 FUNC GLOBAL DEFAULT 14 add
> 25: 0000000000004020 0 NOTYPE GLOBAL DEFAULT 24 _edata
> 26: 0000000000002004 1 NOTYPE WEAK HIDDEN 17 _.stapsdt.base
> 27: 0000000000004010 8 OBJECT GLOBAL DEFAULT 24 t1
> 28: 0000000000001168 0 FUNC GLOBAL HIDDEN 15 _fini
> 29: 0000000000004000 0 NOTYPE GLOBAL DEFAULT 24 __data_start
> 30: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
> 31: 0000000000004008 0 OBJECT GLOBAL HIDDEN 24 __dso_handle
> 32: 0000000000002000 4 OBJECT GLOBAL DEFAULT 16 _IO_stdin_used
> 33: 0000000000004028 0 NOTYPE GLOBAL DEFAULT 25 _end
> 34: 0000000000001070 38 FUNC GLOBAL DEFAULT 14 _start
> 35: 0000000000004020 0 NOTYPE GLOBAL DEFAULT 25 __bss_start
> 36: 0000000000001040 48 FUNC GLOBAL DEFAULT 14 main
> 37: 0000000000004018 8 OBJECT GLOBAL DEFAULT 24 add_ptr
> 38: 0000000000004020 0 OBJECT GLOBAL HIDDEN 24 __TMC_END__
> 39: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMC[...]
> 40: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@G[...]
> 41: 0000000000001000 0 FUNC GLOBAL HIDDEN 11 _init
>
>
> Displaying notes found in: .note.gnu.property
> Owner Data size Description
> GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
> Properties: x86 feature: IBT, SHSTK
> x86 ISA needed: x86-64-baseline
>
>
> Displaying notes found in: .note.gnu.build-id
> Owner Data size Description
> GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
> Build ID: eb615daa575687cc44edc1d339b27890c12c27f1
>
>
> Displaying notes found in: .note.ABI-tag
> Owner Data size Description
> GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
> OS: Linux, ABI: 3.2.0
>
>
> Displaying notes found in: .note.stapsdt
> Owner Data size Description
> stapsdt 0x00000066 NT_STAPSDT (SystemTap probe descriptors)
> Provider: usdt_rip
> Name: rip_global_var
> Location: 0x0000000000001058, Base: 0x0000000000002004, Semaphore: 0x0000000000000000
> Arguments: -1@ti(%rip) 8@add_ptr(%rip) -1@4+t1(%rip) -1@ti(%rip)
Could you share the complete source codes and compiler options which
reproduce the above result?
>
>
>
> At 2025-08-12 13:06:40, "Yonghong Song" <yonghong.song@linux.dev> wrote:
>>
>> On 8/10/25 1:55 AM, 赵佳炜 wrote:
>>>
>>> Hi Yonghong,
>>>
>>> I found another issue where symbols can be duplicated, and I’m not sure how to tell them apart.
>>>
>>> For example, I created two C files named usdt_rip.c and hello.c. Both define their own static ti variables, like:`static volatile char ti = 0;`.
>>>
>>> After compiling, I obtained an ELF file usdt_rip whose .symtab contains the following entries:
>>>
>>> $ readelf -s usdt_rip
>>>
>>> Symbol table '.symtab' contains 42 entries:
>>> Num: Value Size Type Bind Vis Ndx Name
>>> 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
>>> 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o
>>> 2: 000000000000038c 32 OBJECT LOCAL DEFAULT 4 __abi_tag
>>> 3: 0000000000000000 0 FILE LOCAL DEFAULT ABS usdt_rip.c
>>> 4: 0000000000004021 1 OBJECT LOCAL DEFAULT 25 ti
>>> 5: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
>>> 6: 00000000000010a0 0 FUNC LOCAL DEFAULT 14 deregister_tm_clones
>>> 7: 00000000000010d0 0 FUNC LOCAL DEFAULT 14 register_tm_clones
>>> 8: 0000000000001110 0 FUNC LOCAL DEFAULT 14 __do_global_dtors_aux
>>> 9: 0000000000004020 1 OBJECT LOCAL DEFAULT 25 completed.0
>>> 10: 0000000000003df8 0 OBJECT LOCAL DEFAULT 21 __do_global_dtor[...]
>>> 11: 0000000000001150 0 FUNC LOCAL DEFAULT 14 frame_dummy
>>> 12: 0000000000003df0 0 OBJECT LOCAL DEFAULT 20 __frame_dummy_in[...]
>>> 13: 0000000000000000 0 FILE LOCAL DEFAULT ABS damo.c
>>> 14: 0000000000004022 1 OBJECT LOCAL DEFAULT 25 ti
>>> 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
>>> 16: 00000000000020d8 0 OBJECT LOCAL DEFAULT 19 __FRAME_END__
>>>
>>>
>>> As you can see, there are two ti variables in the .symtab section. Their values are very close, making them hard to distinguish.
>>>
>>> I’m unsure how to handle this situation. Do you have any suggestions?
>> Did you check relocations? Relocaitons should be able to point exact which symbol.
>>
>>> Thanks,
>>> Jiawei Zhao
>> [...]
next prev parent reply other threads:[~2025-08-12 16:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-06 9:24 [PATCH v7 0/2] libbpf: fix USDT SIB argument handling causing unrecognized register error Jiawei Zhao
2025-08-06 9:24 ` [PATCH v7 1/2] " Jiawei Zhao
2025-08-06 9:24 ` [PATCH v7 2/2] selftests/bpf: Force -O2 for USDT selftests to cover SIB handling logic Jiawei Zhao
2025-08-06 18:17 ` Yonghong Song
2025-08-07 2:57 ` 赵佳炜
2025-08-07 18:01 ` Yonghong Song
2025-08-10 8:55 ` 赵佳炜
2025-08-10 9:39 ` 赵佳炜
2025-08-12 5:06 ` Yonghong Song
2025-08-12 7:02 ` 赵佳炜
2025-08-12 16:11 ` Yonghong Song [this message]
2025-08-13 2:27 ` 赵佳炜
2025-08-13 5:24 ` Yonghong Song
2025-08-13 6:23 ` 赵佳炜
2025-08-17 13:43 ` 赵佳炜
2025-08-18 17:35 ` Yonghong Song
2025-08-19 9:50 ` 赵佳炜
2025-08-20 20:57 ` Yonghong Song
2025-08-20 23:00 ` Andrii Nakryiko
2025-08-21 15:38 ` 赵佳炜
2025-08-21 18:28 ` Andrii Nakryiko
2025-08-22 15:39 ` 赵佳炜
2025-08-07 9:28 ` Jiri Olsa
2025-08-06 18:07 ` [PATCH v7 0/2] libbpf: fix USDT SIB argument handling causing unrecognized register error Yonghong Song
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2559a8cd-b439-43fc-96e4-d5f2941ca4d8@linux.dev \
--to=yonghong.song@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=phoenix500526@163.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.