tracing: fix trace_find_cmdline()

Impact: prevent stale command line output

In case there is no valid command line mapping for a pid
trace_find_cmdline() returns without updating the comm buffer. The
trace dump keeps the previous entry which results in confusing trace
output:

     <idle>-0     [000]   280.702056 ....
     <idle>-23456 [000]   280.702080 ....

Update the comm buffer with "<...>" when no mapping is found.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Steven Rostedt <srostedt@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Thomas Gleixner 2009-03-18 08:58:44 +01:00 committed by Ingo Molnar
parent 2c7eea4c62
commit 50d88758a3
1 changed files with 4 additions and 5 deletions

View File

@ -787,12 +787,11 @@ void trace_find_cmdline(int pid, char comm[])
__raw_spin_lock(&trace_cmdline_lock);
map = map_pid_to_cmdline[pid];
if (map == NO_CMDLINE_MAP)
goto out;
if (map != NO_CMDLINE_MAP)
strcpy(comm, saved_cmdlines[map]);
else
strcpy(comm, "<...>");
strcpy(comm, saved_cmdlines[map]);
out:
__raw_spin_unlock(&trace_cmdline_lock);
}