KUtrace是一个极低开销的Linux内核跟踪工具,用于观察多核处理器上所有核心的全部执行时间,不遗漏任何内容,同时可以运行用任何计算机语言编写的完全未经修改的用户程序。它已在实际数据中心(x86处理器)和实时自动驾驶(ARM处理器)中使用,以理解长期存在的性能难题。KUtrace的设计目标是揭示实时事务或数据库处理中意外延迟响应的根本原因,同时保持如此低的开销,以至于不会扭曲被测试的系统。
此2022年3月更新完全替代了之前的2019年存储库。
该目录包含与2022年出版的《理解软件动态》一书相关的文件,作者为Richard L. Sites,ISBN 978-0137589739。
book-figures目录包含了书中100多个图表的底层HTML文件,您可以浏览它们以查看更多上下文或发现其他性能问题。这些文件在Chrome浏览器中效果最佳。
kutrace_user_guide.pdf文件提供了比书中第19章更详细和更新的内容。阅读它可以充分利用HTML文件。
hello_world_trace.html文件是book-user-code中hello_world_trace.c程序的示例跟踪。
book-user-code目录包含了书中使用的所有程序和编译它们的脚本。这些程序可以在x86和Rpi4机器上编译和运行。
linux_patches_installation_guide.pdf简要说明了构建补丁的方法。
loadable-module目录包含了实现KUtrace大部分功能的配套内核模块的源代码和Makefile。它可以在AMD和Intel x86机器以及Raspberry Pi4-B上构建。
patches-*文件包含了为三个不同版本的Linux操作系统添加KUtrace的原始源文件和补丁源文件对。这些文件按照原始Linux源代码下载的匹配目录结构组织。patches-linux-5.10.46-rpi4文件夹包含了额外的文档和有用的脚本,用于为这三个版本中的任何一个构建补丁内核,或将补丁合并到其他版本中。此代码仅支持64位Linux版本;32位KUtrace移植是可能的,但困难。
所有代码均开源,大部分采用BSD三条款许可。特定于freebsd的代码使用BSD2许可,特定于risc-v的代码采用GPL-2.0许可。Linux可加载模块根据Linux要求必须采用GPL-2.0许可。