Thread (63 messages) 63 messages, 7 authors, 2025-09-09

Re: [PATCH v6 5/6] tracing: Show inode and device major:minor in deferred user space stacktrace

From: Steven Rostedt <rostedt@kernel.org>
Date: 2025-08-28 21:27:20
Also in: bpf, lkml

On Thu, 28 Aug 2025 18:00:22 -0300
Arnaldo Carvalho de Melo [off-list ref] wrote:
quoted
Thus, the user stack trace will just have the offset and a hash value
that will be match the output of the file_cache event which will have
the path name and a build id (if one exists).

Would that work?  
Probably.

This "if it is available" question is valid, but since 2016 it's is
more of a "did developers disabled it explicitly?"
The "if one exists" comment is that it's not a requirement. If none
exists, it would just add a zero.
If my "googling" isn't wrong, GNU LD defaults to generating a build
ID in ELF images since 2011 and clang's companion since 2016.

So making it even more available than what the BPF guys did long ago
and perf piggybacked on at some point, by having it cached, on
request?, in some 20 bytes alignment hole in task_struct that would
be only used when profiling/tracing may be amenable.
Would perf be interested in this hash file lookup?

I know perf is reliant on user space more than ftrace is, and has a lot
of work happening in user space while getting stack traces. With
ftrace, there's on real user space requirement, thus a lot of the work
needs to be done in the kernel.

If we go with a hash to file, it's somewhat useless by itself without a
way to map the hash to file/buildid.

I originally started making this hash->file a file in tracefs. But then
I needed to figure out how to manage the allocations. Do I add a "size"
for that file and start dropping mappings when it reaches that limit.
Then I may need to add a LRU algorithm to do so. I found simply having
an event that wrote out the mappings was so much easier to implement.

But the file_cache code could be used by perf, where perf does the same
and just monitors the file_cache event. I could make the API more
global than just the kernel/trace directory.

-- Steve
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help