From: 赵佳炜 <phoenix500526@163.com>
To: "Andrii Nakryiko" <andrii.nakryiko@gmail.com>
Cc: "Yonghong Song" <yonghong.song@linux.dev>,
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:Re: Re: [PATCH v7 2/2] selftests/bpf: Force -O2 for USDT selftests to cover SIB handling logic
Date: Fri, 22 Aug 2025 23:39:26 +0800 (CST) [thread overview]
Message-ID: <1fee1812.996d.198d26f4d99.Coremail.phoenix500526@163.com> (raw)
In-Reply-To: <CAEf4BzZLMp5oLnF_Nfjru7+zE2P4981GXWGf6d=6jEY4TqBt4Q@mail.gmail.com>
Ok, I see. I file an issue in libbpf repo to track this discussion.
FYI: https://github.com/libbpf/libbpf/issues/918
At 2025-08-22 02:28:31, "Andrii Nakryiko" <andrii.nakryiko@gmail.com> wrote:
>On Thu, Aug 21, 2025 at 8:38 AM 赵佳炜 <phoenix500526@163.com> wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> In the previous discussion with Yonghong Song, we found that some compiler would generate
>> such an arguement format. Although I have never encounter such an issue, I found that the
>> global volatile variable could trigger the compiler to generate this argument spec. So I tried to
>> solve this problem. I guess this would not be a problem since we have already used STAP_PROBE_ASM
>> to reliably generate SIB argument spec.
>
>Yep, let's hold off on implementing this, as it doesn't seem to be
>really necessary in practice.
>
>>
>> BTW, I have another issue to discuss.
>>
>> Now, bcc framework is not a recommendation for writing bpf program, so bpftrace is now migrating
>> from bcc framework to libbpf. Bcc framework provides some relevant APIs for get usdt probe info[1].
>> And I found that there is not similar APIs in libbpf, therefore I have to parse elf file manually.
>>
>> Could we add some relevant APIs, maybe like `bpf_program__usdt_probe_list`, in libbpf? I can make
>> a patch to implement it. WDYT?
>>
>
>I'm not yet convinced this belongs in libbpf, tbh. The process of
>discovering USDTs actually involved two separate tasks: discovering
>binaries (executable and shared libs) that constitute a process, and
>then for each binary discovering which USDTs belong to it. The first
>part is pretty clearly out of scope for libbpf. Second one in
>principle can be added, but as I said I'm a bit hesitant at this
>point, as we don't even have "USDT manager" exposed through public
>API.
>
>So not yet.
>
>>
>> [1]. https://github.com/bpftrace/bpftrace/blob/1cd4bbdd4a13dd55880f2cc638dde641fb5f8474/src/usdt.cpp#L131C1-L152C2
>>
>>
>>
>>
>>
>>
>>
>> At 2025-08-21 07:00:35, "Andrii Nakryiko" <andrii.nakryiko@gmail.com> wrote:
>> >On Mon, Aug 18, 2025 at 10:35 AM Yonghong Song <yonghong.song@linux.dev> wrote:
>> >>
>> >>
>> >>
>> >> On 8/17/25 6:43 AM, 赵佳炜 wrote:
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > Hi, Yonghong. I've already filed an issue[1] in GCC community.
>> >> >
>> >> >
>> >> > Accroding to the discussion, it's not a gcc bug but may be a systemtap bug.
>> >> > I don't know how to report this bug to systemtap, but I found that the
>> >> > libbpf/usdt have the same problem. I've filed an issue in libbpf/usdt repo[2].
>> >> >
>> >> > I also have some ideas about it. I wrote it down in the issue[2] comment.
>> >> > May be we can discuss there.
>> >> >
>> >> > [1]. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121569
>> >> > [2]. https://github.com/libbpf/usdt/issues/13
>> >>
>> >> Thanks for filing an issue on gcc and getting some feedback/suggestions
>> >> from gcc community.
>> >>
>> >> Currently, libbpf/usdt does not suport format like '-1@ti(%rip)'. If we do
>> >
>> >Exactly, it doesn't. I haven't yet ran into a case where real-world
>> >applications would use such an argument format, so there was no
>> >incentive in trying to support it.
>> >
>> >Was this issue discovered as part of testing on some real world
>> >application, or it's mostly through testing on synthetic cases?
>> >
>> >> intend to implement this. libbpf/usdt can reject that if 'ti' is a
>> >> static variable. libbpf can provide some hints about how to make it
>> >> work (see above [1] and [2]). Then, it would be user's reponsibility to
>> >> change code so libbpf can support it.
>> >>
>> >> >
>> >> >
>> >> >
>> >
>> >[...]
next prev parent reply other threads:[~2025-08-22 15:40 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
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 ` 赵佳炜 [this message]
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=1fee1812.996d.198d26f4d99.Coremail.phoenix500526@163.com \
--to=phoenix500526@163.com \
--cc=andrii.nakryiko@gmail.com \
--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=yonghong.song@linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).