traceshark - A viewer for traces from trace-cmd and perf
Contents
Bugs
traceshark uses the QCustomPlot library to display one graph for each task in the trace. For this reason
the UI might become slow when displaying a large trace with many thousands of tasks, because QCustomPLot
has not been designed to display such a large number of graphs. This situation can be improved by
compiling traceshark from source code and make sure that you use its own internal QCustomPlot, which
contains some hacks to improve the performance with a large number of graphs.
Copyright
Copyright (c) 2020 Viktor Rosendahl
The license of this man page is GPLv2+:
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
v0.9.9-beta 23 February 2020 TRACESHARK(1)
Description
traceshark is a graphical viewer for the Ftrace and Perf events that can be captured by the Linux kernel.
It visualizes the following events:
cpu_frequencycpu_idlesched_migrate_tasksched_process_exitsched_process_forksched_switchsched_wakeupsched_wakeup_newsched_waking
The sched_waking events are not really visualized but there is a button to find the sched_waking event
that has instigated a particular sched_wakeup event.
Examples
Below is an example of how you can use perf to capture a trace that can be viewed with traceshark:$sudomount-ttmpfstmpfs/mnt/tmp$cd/mnt/tmp$sudoperfrecord-epower:cpu_frequency-epower:cpu_idle-esched:sched_kthread_stop-esched:sched_kthread_stop_ret-esched:sched_migrate_task-esched:sched_move_numa-esched:sched_pi_setprio-esched:sched_process_exec-esched:sched_process_exit-esched:sched_process_fork-esched:sched_process_free-esched:sched_process_wait-esched:sched_stick_numa-esched:sched_swap_numa-esched:sched_switch-esched:sched_wait_task-esched:sched_wake_idle_without_ipi-esched:sched_wakeup-esched:sched_wakeup_new-esched:sched_waking-ecpu-cycles-ecpu-cycles--call-graph=dwarf,20480-m512M-r99-a<Control-C>$sudoperfscript-f>tracefile.asc$tracesharktracefile.asc&
It is also possible to use trace-cmd to capture a trace:
$sudomount-ttmpfstmpfs/mnt/tmp$cd/mnt/tmp$sudotrace-cmdrecord-ecpu_frequency-ecpu_idle-esched_kthread_stop-esched_kthread_stop_ret-esched_migrate_task-esched_move_numa-esched_pi_setprio-esched_process_exec-esched_process_exit-esched_process_fork-esched_process_free-esched_process_wait-esched_stick_numa-esched_swap_numa-esched_switch-esched_wait_task-esched_wake_idle_without_ipi-esched_wakeup-esched_wakeup_new-esched_waking-b32768-r99<Control-C>$trace-cmdreporttrace.dat>tracefile.asc$tracesharktracefile.asc&Name
traceshark - A viewer for traces from trace-cmd and perf
Options
traceshark supports the options that are supported by all Qt applications. For details, check the Qt
documentation, especially the documentations of the QApplication class.
See Also
More detailed information about how to use traceshark:
https://github.com/cunctator/traceshark
Documentation of the QApplication class and the command line options:
https://doc.qt.io/qt-5/qapplication.html
Sample traces can be found here:
https://github.com/cunctator/traceshark-resourcesSynopsis
traceshark[OPTION]...[filename]
