TRACESHARK(1)

NAME
traceshark - A viewer for traces from trace-cmd and perf

SYNOPSIS
traceshark [ OPTION ]... [ filename ]

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_frequency

cpu_idle

sched_migrate_task

sched_process_exit

sched_process_fork

sched_switch

sched_wakeup

sched_wakeup_new

sched_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.

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.

EXAMPLES

Below is an example of how you can use perf to capture a trace that can be viewed with traceshark:

$ sudo mount -t tmpfs tmpfs /mnt/tmp
$ cd /mnt/tmp
$ sudo perf record -e power:cpu_frequency -e power:cpu_idle -e sched:sched_kthread_stop -e sched:sched_kthread_stop_ret -e sched:sched_migrate_task -e sched:sched_move_numa -e sched:sched_pi_setprio -e sched:sched_process_exec -e sched:sched_process_exit -e sched:sched_process_fork -e sched:sched_process_free -e sched:sched_process_wait -e sched:sched_stick_numa -e sched:sched_swap_numa -e sched:sched_switch -e sched:sched_wait_task -e sched:sched_wake_idle_without_ipi -e sched:sched_wakeup -e sched:sched_wakeup_new -e sched:sched_waking -e cpu-cycles -e cpu-cycles --call-graph=dwarf,20480 -m 512M -r 99 -a
<Control-C>
$ sudo perf script -f > tracefile.asc
$ traceshark tracefile.asc&

It is also possible to use trace-cmd to capture a trace:

$ sudo mount -t tmpfs tmpfs /mnt/tmp
$ cd /mnt/tmp
$ sudo trace-cmd record -e cpu_frequency -e cpu_idle -e sched_kthread_stop -e sched_kthread_stop_ret -e sched_migrate_task -e sched_move_numa -e sched_pi_setprio -e sched_process_exec -e sched_process_exit -e sched_process_fork -e sched_process_free -e sched_process_wait -e sched_stick_numa -e sched_swap_numa -e sched_switch -e sched_wait_task -e sched_wake_idle_without_ipi -e sched_wakeup -e sched_wakeup_new -e sched_waking -b 32768 -r 99
<Control-C>
$ trace-cmd report trace.dat > tracefile.asc
$ traceshark tracefile.asc&

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-resources

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.

AUTHOR

traceshark was created by Viktor Rosendahl <viktor.rosendahl@iki.fi>.

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