diff options
| author | Anubhav Shelat <[email protected]> | 2025-07-16 20:39:15 +0000 |
|---|---|---|
| committer | Namhyung Kim <[email protected]> | 2025-07-18 00:05:07 +0000 |
| commit | 39f473f6d0b24cf375893f2110b1cc9d8a079a42 (patch) | |
| tree | 364ef3566eb07339eae38850dedbd4342af4f39b /tools/perf/builtin-sched.c | |
| parent | perf flamegraph: Fix minor pylint/type hint issues (diff) | |
| download | kernel-39f473f6d0b24cf375893f2110b1cc9d8a079a42.tar.gz kernel-39f473f6d0b24cf375893f2110b1cc9d8a079a42.zip | |
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Namhyung Kim <[email protected]>
Diffstat (limited to 'tools/perf/builtin-sched.c')
| -rw-r--r-- | tools/perf/builtin-sched.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 4bbebd6ef2e4..34051ad23493 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -2201,6 +2201,11 @@ static void timehist_print_sample(struct perf_sched *sched, printf(" "); } + if (!thread__comm_set(thread)) { + const char *prev_comm = evsel__strval(evsel, sample, "prev_comm"); + thread__set_comm(thread, prev_comm, sample->time); + } + printf(" %-*s ", comm_width, timehist_get_commstr(thread)); if (sched->show_prio) |
