pub/scm/utils/trace-cmd/kernel-shark.git  about / heads / tags
Official home of KernelShark
$ git log --pretty=format:'%h %s (%cs)%d'
c2713243 KernelShark: Version 2.3.1 (2024-03-20)
	(HEAD -> kernelshark, 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)
e892dc5e kernelshark: Fix potential memory leaks in libkshark-configio (2024-02-04)
188ab856 kernelshark: Prevent potential divide by zero in Shape::center() (2024-02-04)
c373cc79 kernelshark: Fix potential memory leaks in libkshark-tepdata (2024-02-04)
d489c87e kernelshark: Allow to reduce a bit more the graph height (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.1 (2024-03-20)

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
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)
       3281 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