Skip to content

Check the README to find the official repository of KernelShark. This repository is not considered stable.

Notifications You must be signed in to change notification settings

jeromemarchand/kernel-shark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:
   [email protected]

   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:
    [email protected]

   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

About

Check the README to find the official repository of KernelShark. This repository is not considered stable.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 51.4%
  • C++ 43.4%
  • CMake 2.5%
  • Roff 2.5%
  • Shell 0.2%