Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf sched timehist: decode process names of processes in zombie state

Previously when running perf trace timehist --state, when recording
processes in the zombie state the process name would not be decoded
properly and appears with just the PID:

1140057.412177 [0006] Mutter Input Th[3139/3104] 0.956 0.019 0.041 S
1140057.412222 [0012] :1248612[1248612] 0.000 0.000 0.332 Z
1140057.412275 [0004] <idle> 0.052 0.052 0.953 I
1140057.412284 [0008] <idle> 0.070 0.070 0.932 I
1140057.412333 [0004] KMS thread[3126/3104] 0.953 0.112 0.058 S

Now some extra processing has been added to decode the process name:

1140057.412177 [0006] Mutter Input Th[3139/3104] 0.956 0.019 0.041 S
1140057.412222 [0012] sleep[1248612] 0.000 0.000 0.332 Z
1140057.412275 [0004] <idle> 0.052 0.052 0.953 I
1140057.412284 [0008] <idle> 0.070 0.070 0.932 I
1140057.412333 [0004] KMS thread[3126/3104] 0.953 0.112 0.058 S

Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
Link: https://lore.kernel.org/r/20250716203914.45772-2-ashelat@redhat.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

authored by

Anubhav Shelat and committed by
Namhyung Kim
39f473f6 95d692f9

+5
+5
tools/perf/builtin-sched.c
··· 2201 2201 printf(" "); 2202 2202 } 2203 2203 2204 + if (!thread__comm_set(thread)) { 2205 + const char *prev_comm = evsel__strval(evsel, sample, "prev_comm"); 2206 + thread__set_comm(thread, prev_comm, sample->time); 2207 + } 2208 + 2204 2209 printf(" %-*s ", comm_width, timehist_get_commstr(thread)); 2205 2210 2206 2211 if (sched->show_prio)