$ git log --pretty=format:'%h %s (%cs)%d'
5d6cd8f0 KernelShark: Version 2.3.2 (2025-01-01)
(HEAD -> kernelshark, tag: kernelshark-v2.3.2)
f6f547c5 kernelshark: Avoid nullptr deref in _graphFollowsChanged (2025-01-01)
59aeaca7 kernel-shark: In CI switch to v4 of the artefact actions (2024-09-12)
9e333246 kernelshark: fix compiling error in LatencyPlot.cpp (2024-06-14)
c2713243 KernelShark: Version 2.3.1 (2024-03-20)
(tag: kernelshark-v2.3.1)
5b428e3c kernel-shark: Fix various compile warnings (2024-03-10)
932b1470 kernelshark: Mute all "unused parameter" warnings (2024-03-10)
3f2fa6ef kernel-shark: Enable extra compile warnings (2024-03-10)
950fceeb kernelshark: Prevent potential detach of QMap container (2024-02-04)
4f3bc9bb kernelshark: Do not create a temporary container for looping over QMap (2024-02-04)
...
$ git cat-file blob HEAD:README
KernelShark is a front-end reader of tracing data.
The official repository is here:
https://git.kernel.org/pub/scm/utils/trace-cmd/kernel-shark.git
Third Party Software:
------------------------------------------------------------
KernelShark has the following external dependencies:
Cmake, Json-C, OpenGL/Glut, Qt6Base, libtraceevent, libtracefs, trace-cmd
and FreeSans font.
1. In order to install the packages on Ubuntu do the following:
sudo apt-get install build-essential git cmake libjson-c-dev -y
sudo apt-get install freeglut3-dev libxmu-dev libxi-dev -y
sudo apt-get install flex bison -y
sudo apt-get install fonts-freefont-ttf -y
sudo apt-get install qt6-base-dev qt6-scxml-dev -y
sudo apt-get install libtraceevent-dev libtracefs-dev libtracecmd-dev trace-cmd -y
1.1 If you want to be able to generate Doxygen documentation:
sudo apt-get install graphviz doxygen-gui -y
2. In order to install the packages on Fedora, as root do the following:
sudo dnf install gcc gcc-c++ git cmake json-c-devel -y
sudo dnf install freeglut-devel redhat-rpm-config -y
sudo dnf install flex bison -y
sudo dnf install gnu-free-sans-fonts -y
sudo dnf install qt6-qtbase-devel qt6-qtscxml-devel -y
sudo dnf install libtraceevent-devel libtracefs-devel libtracecmd-devel trace-cmd -y
2.1 If you want to be able to generate Doxygen documentation:
sudo dnf install graphviz doxygen -y
Building:
------------------------------------------------------------
1. Building and install KernelShark GUI:
cd kernel-shark/build
cmake ../
make
sudo ./install_gui.sh
1.1 In order to create a Doxygen documentation add -D_DOXYGEN_DOC=1
as a CMake Command-Line option (see the example below).
1.2 KernelShark has multiple build types. By default, the build type is
RelWithDebInfo, which will build a release candidate with debug information.
To change the type, pass in the option CMAKE_BUILD_TYPE=<type> (see the
example below).
cmake -DCMAKE_BUILD_TYPE=Debug - for "-g" option
cmake -DCMAKE_BUILD_TYPE=Release - for "-O3" option
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo - for "-g -O2" option (default)
cmake -DCMAKE_BUILD_TYPE=MinSizeRel - for "-Os" option
1.3 In addition to the standard CMake build types (Debug, Release,
RelWithDebInfo, MinSizeRel) KernelShark supports a "Package" build type.
By default this build type adds the "-O3" compiler flag. Package maintainers
can chose their own compiler flags by providing the corresponding
CMAKE_XXXX_FLAGS_PACKAGE Command-Line options (see the example below).
-- Note that when built as a "Package" the RPATH-s of the executables are
set directly to _INSTALL_PREFIX/lib/kernelshark/
1.4 After building the code "kernel-shark/lib" will contain all libraries
and "kernel-shark/bin" will contain all executables.
1.5 Use the script "cmake_clean.sh" if you want to delete all already
compiled objects and all files generated by CMake.
cd kernel-shark/build
./cmake_clean.sh
1.6 By default, installation prefix is "/usr/local". It can be changed using
-D_INSTALL_PREFIX= as a CMake Command-Line option (see the example below).
2. To install libkshark-devel do:
sudo ./install_libkshark-devel.sh
This will install all components needed in order to use "libkshark".
Note that if you just use:
sudo make install
this will install both the GUI and libkshark-devel.
3. In order to uninstall KernelShark (no matter what has been installed) do:
cd kernel-shark/build
./cmake_uninstall.sh
CMake examples:
cmake -D_DOXYGEN_DOC=1 -D_INSTALL_PREFIX=/usr ../
cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic" ../
External plugins:
------------------------------------------------------------
KernelShark also supports stand-alone plugin except for build-in. There is
a real example under https://source.denx.de/Xenomai/xenomai/-/tree/next/tracing/kernelshark/,
which is to visualize out-of-band state of realtime task with hollow cobalt
blue box mainly when there is cobalt context switches in Xenomai. As its
implemention mainly refers to build-in plugin-sched_events, it shares common
plugin features such as clickable shapes.
Contributions:
------------------------------------------------------------
3. For questions about the use of the library, please send email to:
linux-trace-users@vger.kernel.org
Subscribe: http://vger.kernel.org/vger-lists.html#linux-trace-users
Archives: https://lore.kernel.org/linux-trace-users/
3.1 For contributions to development, please send patches to:
linux-trace-devel@vger.kernel.org
Subscribe: http://vger.kernel.org/vger-lists.html#linux-trace-devel
Archives: https://lore.kernel.org/linux-trace-devel/
3.2 Note, this project follows the style of submitting patches as described
by the Linux kernel.
https://www.kernel.org/doc/html/v5.4/process/submitting-patches.html
# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* kernelshark KernelShark: Version 2.3.2 (2025-01-01)
# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
--format='%(refname:short) %(subject) (%(creatordate:short))'
kernelshark-v2.3.2 KernelShark 2.1.1 (2025-01-01) tar.gz
kernelshark-v2.3.1 KernelShark 2.3.1 (2024-03-20) tar.gz
kernelshark-v2.3.0 KernelShark 2.3.0 (2023-11-19) tar.gz
kernelshark-v2.2.1 KernelShark 2.2.1 (2023-06-25) tar.gz
kernelshark-v2.2.0 KernelShark 2.2.0 (2023-01-21) tar.gz
kernelshark-v2.1.1 KernelShark 2.1.1 (2022-04-26) tar.gz
kernelshark-v2.1.0 KernelShark 2.1.0 (2022-01-18) tar.gz
kernelshark-v2.0.2 KernelShark 2.0.2 - Fixing possible segfaults when (de)initializing the 'sched_events' plugin. (2021-09-14) tar.gz
kernelshark-v2.0.1 KernelShark 2.0.1 - Fixing the build failure caused by the recent modifications in libtracefs. (2021-07-28) tar.gz
kernelshark-v2.0 KernelShark 2.0 (2021-05-18) tar.gz
# associated public inboxes:
# (number on the left is used for dev purposes)
3330 linux-trace-devel
542 lkml
75 linux-perf-users
24 qemu-devel
22 stable
21 kvm
20 git
19 linux-arm-kernel
19 u-boot
18 netdev
15 linux-devicetree
13 dpdk-dev
12 buildroot
11 xen-devel
10 linuxppc-dev
8 linux-fsdevel
8 linux-mm
8 linux-scsi
8 dri-devel
7 linux-wireless
7 linux-media
6 linux-xfs
6 linux-btrfs
6 intel-gfx
5 netfilter-devel
5 linux-mips
5 alsa-devel
5 linux-usb
5 openembedded-core
5 openembedded-devel
5 linux-trace-kernel
5 powertop
4 linux-mediatek
4 linux-crypto
4 linux-cifs
4 linux-input
4 linux-bluetooth
4 cluster-devel
4 linux-nilfs
3 linux-samsung-soc
3 linux-block
3 linux-riscv
3 linux-nfs
3 linux-arm-msm
3 selinux
3 linux-gpio
3 linux-rdma
3 linux-ext4
3 linux-rt-users
3 linux-ide
3 linux-omap
3 lttng-dev
3 linux-arch
3 linux-s390
3 linux-staging
3 nvdimm
3 yocto-meta-freescale
3 linux-patches
3 linux-um
3 poky
3 kvm-ppc
3 lvm-devel
2 linux-mtd
2 cocci
2 bpf
2 linux-acpi
2 linux-integrity
2 linux-amlogic
2 linux-erofs
2 linux-nvdimm
2 linux-snps-arc
2 fstests
2 linux-pm
2 linux-hwmon
2 linux-iio
2 linux-pci
2 linux-f2fs-devel
2 backports
2 linux-doc
2 linux-mmc
2 amd-gfx
2 tpmdd-devel
2 linux-api
2 linux-spi
2 linux-i2c
2 virtualization
2 linux-kbuild
2 containers
2 dm-devel
2 linux-cxl
2 linux-sh
2 ocfs2-devel
2 nouveau
2 kernel-janitors
2 fio
2 ofono
2 yocto-meta-ti
2 openrisc
2 intel-wired-lan
2 batman
2 linux-ia64
2 autofs
2 linux-alpha
2 linux-hexagon
2 reiserfs-devel
2 lvs-devel
1 linux-fscrypt
1 linux-nvme
1 live-patching
1 linux-efi
1 linux-edac
1 linux-iommu
1 linux-rtc
1 kvmarm
1 driverdev-devel
1 linux-renesas-soc
1 linux-kselftest
1 kernel-hardening
1 linux-clk
1 dmaengine
1 linux-next
1 linux-parisc
1 linux-leds
1 linux-security-module
1 linux-modules
1 kernelnewbies
1 linux-sgx
1 linux-serial
1 linux-watchdog
1 linux-hyperv
1 workflows
1 rcu
1 linux-m68k
1 linux-i3c
1 util-linux
1 linux-spdx
1 linux-wpan
1 ksummit-discuss
1 wireguard
1 io-uring
1 linux-kernel-mentees
1 linux-csky
1 linux-man
1 linux-unionfs
1 linux-firmware
1 cip-dev
1 linux-audit
1 linux-remoteproc
1 linux-dash
1 linux-bcache
1 linux-sparse
1 mm-commits
1 linux-pwm
1 linux-tegra
1 linux-fpga
1 ceph-devel
1 linux-can
1 linux-rockchip
1 linux-raid
1 xdp-newbies
1 platform-driver-x86
1 phone-devel
1 openbmc
1 linux-hardening
1 dash
1 keyrings
1 linux-fbdev
1 linux-sctp
1 target-devel
1 lustre-devel
1 soc
1 rust-for-linux
1 ath10k
1 ath11k
1 linux-phy
1 sparclinux
1 linux-sunxi
1 mptcp
1 linux-coco
1 regressions
1 ksummit
1 b43-dev
1 linux-nfc
1 linux-bcachefs
1 ath9k-devel
1 ntfs3
1 llvm
1 iwd
1 ell
1 ltp
1 yocto
1 yocto-toaster
1 yocto-meta-arm
1 yocto-docs
1 bitbake-devel
1 yocto-meta-virtualization
1 chrome-platform
1 ntb
1 yocto-meta-arago
1 outreachy
1 xenomai
1 damon
1 asahi
1 kexec
1 loongarch
1 imx
1 ath12k
1 b4-sent
1 oe-lkp
1 oe-linux-nfc
1 oe-kbuild-all
1 oe-chipsec
1 intel-xe
1 virtio-dev
1 virtio-comment
1 v9fs
1 ecryptfs
1 qemu-riscv
1 grub-devel
1 kbd
1 cpufreq
1 dccp
1 cgroups
1 devicetree-spec
1 devicetree-compiler
1 initramfs
1 hail-devel
1 kvm-ia64
1 linux-8086
1 kernel-testers
1 linux-btrace
1 linux-embedded
1 linux-hams
1 linux-hotplug
1 linux-laptop
1 linux-sound
1 trinity
1 linux-metag
1 linux-x25
1 netfilter
1 linux-oxnas
1 u-boot-amlogic
1 lm-sensors
1 acpica-devel
1 perfbook
1 virtio-fs
1 smatch
1 fuego
1 wireless-regdb
1 igt-dev
git clone https://yhbt.net/lore/pub/scm/utils/trace-cmd/kernel-shark.git