From: Peng Donglin <dolinux.peng@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: mhiramat@kernel.org, dolinux.peng@gmai.com,
linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org,
pengdonglin <pengdonglin@xiaomi.com>
Subject: Re: [PATCH v5 0/3] Use BTF to trim return values
Date: Wed, 2 Sep 2026 11:25:29 +0800 [thread overview]
Message-ID: <f18beeb4-f3df-41eb-9990-5be295a2729b@gmail.com> (raw)
In-Reply-To: <20260901135715.4812fde9@gandalf.local.home>
On 9/2/26 01:57, Steven Rostedt wrote:
> On Tue, 1 Sep 2026 21:46:01 +0800
> Donglin Peng <dolinux.peng@gmail.com> wrote:
>
>> From: pengdonglin <pengdonglin@xiaomi.com>
>>
>> The funcgraph-retval option currently records one machine-word return
>> value without considering the function's declared return type. As a
>> result, void-returning functions can produce meaningless output, and
>> return values narrower than a general-purpose register can include
>> undefined high bits.
>>
>> This series uses kernel BTF to identify the return type of traced
>> functions and to improve funcgraph-retval output:
>>
>> - Do not print a return value for functions with a void return type.
>> - Trim integer, enum, struct, and union values to the available return
>> value width when the BTF type provides suitable size information.
>> - Format integer, enum, and boolean values according to their BTF
>> encoding.
>> - Mark values as "(trunc)" when the return type is wider than the
>> value captured by the function graph tracer.
>
> Hmm, I really don't like the "(trunc)" If it's the real return type, then
> it should just print what the real size is. No need to state it was truncated.
Thanks, I agree. We can remove the "(trunc)" suffix and print the actual
type information instead, for example:
ret=0x5[struct:0x10]
This would indicate that the return type is a struct with a size of 0x10
bytes.
Would this be acceptable?
>
> -- Steve
>
>>
>> Here is an output comparison:
>>
>> Before:
>> # perf ftrace -G vfs_read --graph-opts retval
>> ...
>> 1) | touch_atime() {
>> 1) | atime_needs_update() {
>> 1) 0.069 us | make_vfsuid(); /* ret=0x0 */
>> 1) 0.067 us | make_vfsgid(); /* ret=0x0 */
>> 1) | current_time() {
>> 1) 0.197 us | ktime_get_coarse_real_ts64_mg(); /* ret=0x187f886aec3ed6f5 */
>> 1) 0.352 us | } /* current_time ret=0x69380753 */
>> 1) 0.792 us | } /* atime_needs_update ret=0x0 */
>> 1) 0.937 us | } /* touch_atime ret=0x0 */
>>
>> After:
>> # perf ftrace -G vfs_read --graph-opts retval
>> ...
>> 2) | touch_atime() {
>> 2) | atime_needs_update() {
>> 2) 0.070 us | make_vfsuid(); /* ret=0x0 */
>> 2) 0.070 us | make_vfsgid(); /* ret=0x0 */
>> 2) | current_time() {
>> 2) 0.162 us | ktime_get_coarse_real_ts64_mg();
>> 2) 0.312 us | } /* current_time ret=0x69380649(trunc) */
>> 2) 0.753 us | } /* atime_needs_update ret=false */
>> 2) 0.899 us | } /* touch_atime */
next prev parent reply other threads:[~2026-09-02 3:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-01 13:46 [PATCH v5 0/3] Use BTF to trim return values Donglin Peng
2026-09-01 13:46 ` [PATCH v5 1/3] ftrace: Build trace_btf.c when CONFIG_DEBUG_INFO_BTF is enabled Donglin Peng
2026-09-02 14:58 ` Masami Hiramatsu
2026-09-01 13:46 ` [PATCH v5 2/3] fgraph: Enhance funcgraph-retval with BTF-based type-aware output Donglin Peng
2026-09-01 14:10 ` sashiko-bot
2026-09-01 13:46 ` [PATCH v5 3/3] tracing: Update funcgraph-retval documentation Donglin Peng
2026-09-01 14:20 ` sashiko-bot
2026-09-01 17:57 ` [PATCH v5 0/3] Use BTF to trim return values Steven Rostedt
2026-09-02 3:25 ` Peng Donglin [this message]
2026-09-02 14:55 ` Masami Hiramatsu
2026-09-03 16:17 ` Donglin Peng
2026-09-03 16:36 ` Steven Rostedt
2026-09-03 23:48 ` Masami Hiramatsu
2026-09-04 0:30 ` Steven Rostedt
2026-09-04 1:34 ` Donglin Peng
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=f18beeb4-f3df-41eb-9990-5be295a2729b@gmail.com \
--to=dolinux.peng@gmail.com \
--cc=dolinux.peng@gmai.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=pengdonglin@xiaomi.com \
--cc=rostedt@goodmis.org \
/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.