Re: [PATCH] tracing: use ring_buffer_record_is_set_on() in tracer_tracing_is_on()
From: Sven Schnelle <svens@linux.ibm.com>
Date: 2024-02-05 15:09:23
Also in:
lkml
Hi Steven, Steven Rostedt [off-list ref] writes:
On Mon, 05 Feb 2024 14:16:30 +0100 Sven Schnelle [off-list ref] wrote:quoted
Another issue i'm hitting sometimes is this part: csum1=`md5sum trace` sleep $SLEEP_TIME csum2=`md5sum trace` if [ "$csum1" != "$csum2" ]; then fail "Tracing file is still changing" fi This is because the command line was replaced in the saved_cmdlines_buffer, an example diff between both files is:[..]quoted
This can be improved by: echo 32768 > /sys/kernel/tracing/saved_cmdlines_size But this is of course not a fix - should we maybe replace the program name with <...> before comparing, remove the check completely, or do anything else? What do you think?Hmm, actually I would say that this exposes a real bug. Not a major one, but one that I find annoying. The saved commandlines should only be updated when a trace event occurs. But really, it should only be updated if one is added to the ring buffer. If the ring buffer isn't being updated, we shouldn't be adding new command lines. There may be a location that has tracing off but still updating the cmdlines which will break the saved cache.
Ok, my understanding is that it will override the entry in the list if another process comes up with the same PID. But i haven't read the code carefully - let me do that now.