Skip to content

Commit bf30cc1

Browse files
Alexey Budankovacmel
authored andcommitted
perf script: Extend misc field decoding with switch out event type
Append 'p' sign to 'S' tag designating the type of context switch out event so 'Sp' means preemption context switch. Documentation is extended to cover new presentation changes. $ perf script --show-switch-events -F +misc -I -i perf.data: hdparm 4073 [004] U 762.198265: 380194 cycles:ppp: 7faf727f5a23 strchr (/usr/lib64/ld-2.26.so) hdparm 4073 [004] K 762.198366: 441572 cycles:ppp: ffffffffb9218435 alloc_set_pte (/lib/modules/4.16.0-rc6+/build/vmlinux) hdparm 4073 [004] S 762.198391: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 0/0 swapper 0 [004] 762.198392: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 4073/4073 swapper 0 [004] Sp 762.198477: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt next pid/tid: 4073/4073 hdparm 4073 [004] 762.198478: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 0/0 swapper 0 [007] K 762.198514: 2303073 cycles:ppp: ffffffffb98b0c66 intel_idle (/lib/modules/4.16.0-rc6+/build/vmlinux) swapper 0 [007] Sp 762.198561: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt next pid/tid: 1134/1134 kworker/u16:18 1134 [007] 762.198562: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 0/0 kworker/u16:18 1134 [007] S 762.198567: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 0/0 Signed-off-by: Alexey Budankov <[email protected]> Tested-by: Arnaldo Carvalho de Melo <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent b3f35b5 commit bf30cc1

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

tools/perf/Documentation/perf-script.txt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -228,14 +228,15 @@ OPTIONS
228228
For sample events it's possible to display misc field with -F +misc option,
229229
following letters are displayed for each bit:
230230

231-
PERF_RECORD_MISC_KERNEL K
232-
PERF_RECORD_MISC_USER U
233-
PERF_RECORD_MISC_HYPERVISOR H
234-
PERF_RECORD_MISC_GUEST_KERNEL G
235-
PERF_RECORD_MISC_GUEST_USER g
236-
PERF_RECORD_MISC_MMAP_DATA* M
237-
PERF_RECORD_MISC_COMM_EXEC E
238-
PERF_RECORD_MISC_SWITCH_OUT S
231+
PERF_RECORD_MISC_KERNEL K
232+
PERF_RECORD_MISC_USER U
233+
PERF_RECORD_MISC_HYPERVISOR H
234+
PERF_RECORD_MISC_GUEST_KERNEL G
235+
PERF_RECORD_MISC_GUEST_USER g
236+
PERF_RECORD_MISC_MMAP_DATA* M
237+
PERF_RECORD_MISC_COMM_EXEC E
238+
PERF_RECORD_MISC_SWITCH_OUT S
239+
PERF_RECORD_MISC_SWITCH_OUT_PREEMPT Sp
239240

240241
$ perf script -F +misc ...
241242
sched-messaging 1414 K 28690.636582: 4590 cycles ...

tools/perf/builtin-script.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,8 +657,11 @@ static int perf_sample__fprintf_start(struct perf_sample *sample,
657657
break;
658658
case PERF_RECORD_SWITCH:
659659
case PERF_RECORD_SWITCH_CPU_WIDE:
660-
if (has(SWITCH_OUT))
660+
if (has(SWITCH_OUT)) {
661661
ret += fprintf(fp, "S");
662+
if (sample->misc & PERF_RECORD_MISC_SWITCH_OUT_PREEMPT)
663+
ret += fprintf(fp, "p");
664+
}
662665
default:
663666
break;
664667
}

0 commit comments

Comments
 (0)