Re: [PATCH] tracing: Add task_prctl_unknown tracepoint
From: Steven Rostedt
Date: Wed Nov 06 2024 - 10:29:11 EST
On Wed, 6 Nov 2024 10:18:23 -0500
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> > Some trial and error led me to conclude it's a race between the logic
> > looking up the comm and the process exiting: If the test program exits
> > soon after the traced event, it doesn't print the comm. Adding a
> > generous usleep() before it exits reliably prints the comm.
>
> Thanks for letting me know. Let me see if I can fix that!
Hmm, that still doesn't make sense. Is this just a single line or do you
have other events being recorded?
The way the caching works is during the sched_switch tracepoint which still
gets called when the task exits. If a trace event is triggered, it sets a
per cpu flags to have the next sched_switch record the comm for both the
previous and next tasks.
Now the reason it can miss is that there's contention on the lock that
saves the comms (it does a trylock and if it fails, it just skips it). Or
if another task hits the same "comm cache line".
This is why I wonder if you have other events being traced.
-- Steve