On Wed, 6 Nov 2024 19:12:42 +0100
Marco Elver <[email protected]> wrote:

> No other events should be traced. This is the test program I've used:
> 
>       #include <sys/prctl.h>
>       #include <unistd.h>
> 
>       int main(int argc, char *argv[])
>       {
>         prctl(1234, 101, 102, 103, 104);
>         if (argc > 1)
>           usleep(1000);
>         return 0;
>       }
> 
> Kernel config is x86_64 default + CONFIG_FUNCTION_TRACER=y +
> CONFIG_FTRACE_SYSCALLS=y. For the test, once booted all I do is:
> 
>       % echo 1 > 
> /sys/kernel/debug/tracing/events/task/task_prctl_unknown/enable
>       % cat /sys/kernel/debug/tracing/trace_pipe
>       ... wait for output ...
> 
> That's pretty much it. I've attached my kernel config just in case I
> missed something.

OK, it's because you are using trace_pipe (which by the way should not be
used for anything serious). The read of trace_pipe flushes the buffer
before the task is scheduled out and the comm saved, so it prints the
"<...>". If you instead do the cat of trace_pipe *after* running the
command, you'll see the comm.

So this is just because you are using the obsolete trace_pipe.

-- Steve

Reply via email to