https://github.com/dicksites/KUtrace Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Topics + AI + DevOps + Innersource + Open Source + Security + Software Development Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} dicksites / KUtrace Public * Notifications You must be signed in to change notification settings * Fork 50 * Star 545 Low-overhead tracing of all Linux kernel-user transitions, for serious performance analysis. Includes kernel patches, loadable module, and post-processing software. Output is HTML/SVG per-CPU-core timeline that you can pan/zoom down to the nanosecond. License View license 545 stars 50 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 5 * Pull requests 1 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights dicksites/KUtrace This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master BranchesTags Go to file Code Folders and files Last Last Name Name commit commit message date Latest commit History 57 Commits bookcode bookcode bookfigs bookfigs docs docs freebsd freebsd linux linux postproc postproc riscv_linux riscv_linux .DS_Store .DS_Store LICENSE LICENSE README README hello_world_demo.json hello_world_demo.json hello_world_demo_live.html hello_world_demo_live.html hello_world_walkthrough.pdf hello_world_walkthrough.pdf timecounters.h timecounters.h View all files Repository files navigation * README * License KUtrace is an extremely low-overhead Linux kernel tracing facility for observing all the execution time on all cores of a multi-core processor, nothing missing, while running completely unmodified user programs written in any computer language. It has been used in live datacenters (x86 processors) and in real-time autonomous driving (ARM processors) to understand long-standing performance mysteries. The design goal of KUtrace is to reveal the root cause(s) of unexpected delayed responses in real-time transactions or database processing while having such low overhead that it does not distort the system under test. This March 2022 update COMPLETELY REPLACES the previous 2019 repository. The directory contains files associated with the 2022 book Understanding Software Dynamics by Richard L. Sites, ISBN 978-0137589739. The book-figures directory contains the underlying HTML files for over 100 of the diagrams in the book, so you can wander around them to see more context or to discover other performance issues. They work best in the Chrome browser. The kutrace_user_guide.pdf file gives more detail and is more recent than the text in Chapter 19 of the book. Read it to fully use the HTML files. The hello_world_trace.html file is an example trace of the hello_world_trace.c program found in book-user-code. The book-user-code directory contains all the programs used in the book and the script to compile them. They compile and run on both x86 and Rpi4 machines. The linux_patches_installation_guide.pdf gives brief directions for building the patches. The loadable-module directory contains the source and Makefile for the companion kernel module that implements the bulk of KUtrace. It builds for AMD and Intel x86 machines and for the Raspberry Pi4-B. The patches-* files contain original source and patched source pairs of files for adding KUtrace to three different versions of the Linux operating system. These files are structured in the matching directories of the original Linux source download. The patches-linux-5.10.46-rpi4 folder contains additional documentation and useful scripts for building a patched kernel for any of these three versions or for incorporating the patches into other versions. Only 64-bit versions of Linux are supported in this code; 32-bit ports of KUtrace are possible but difficult. All the code is open sourced, most of it under the BSD three-clause license. The code specific to freebsd uses the BSD2 license, and the code specific to risc-v is licensed under GPL-2.0. The Linux loadable module(s) are required by Linux to be licensed under GPL-2.0. About Low-overhead tracing of all Linux kernel-user transitions, for serious performance analysis. Includes kernel patches, loadable module, and post-processing software. Output is HTML/SVG per-CPU-core timeline that you can pan/zoom down to the nanosecond. Resources Readme License View license Activity Stars 545 stars Watchers 27 watching Forks 50 forks Report repository Releases No releases published Packages 0 Languages * HTML 72.8% * C++ 14.7% * C 12.3% * Other 0.2% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.