11 KiB
title, date, author, tags, categories, thumbnail, blogexcerpt
| title | date | author | tags | categories | thumbnail | blogexcerpt | |||
|---|---|---|---|---|---|---|---|---|---|
| 工具 | 2021-06-26 09:40 | gatieme |
|
|
虚拟化 & KVM 子系统 |
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作
因本人技术水平和知识面有限, 内容如有纰漏或者需要修正的地方, 欢迎大家指正, 鄙人在此谢谢啦
转载请务必注明出处, 谢谢, 不胜感激
| 日期 | 作者 | GitHub | CSDN | BLOG |
|---|---|---|---|---|
| 2021-02-15 | 成坚-gatieme | AderXCoding/system/tools/fzf |
使用模糊搜索神器 FZF 来提升办公体验 | Using FZF to Improve Productivit |
工具
--------------- 重要功能和时间点 ---------------**
下文将按此目录分析 Linux 内核中 MM 的重要功能和引入版本:
--------------- 正文 ---------------**
1 开发工具
社区一直在寻求一种非邮件列表的内核开发方式
2 调试工具
2.1 debug
systrace, perfetto, drgn
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|---|---|---|---|---|---|
| 2019/05/29 | Sandoval @ Facebook | A kernel debugger in Python: drgn | 一款 kernel 调试器, 可以利用 Python 脚本来访问正在运行的 kernel 里的数据结构 Drgn 在 LSFMM2019 被公开, LWN 随即进行了报道 A kernel debugger in Python: drgn, 随后 2021 年报道了 drgn: How the Linux Kernel Team at Meta Debugs the Kernel at Scale (Meta), Meta 的内核团队使用了 Drgn 跟踪内核中出现的问题, 并贡献了非常分布的用例集合. |
☐ | Github, User Guide, BPF drgn tools |
| 2021/11/21 | David Woodhouse dwmw2@infradead.org | Microsoft-Performance-Tools-Linux-Android | Microsoft 发布了一款 Linux/Android 的性能分析工具 Performance Tools For Linux/Android, 一组跟踪处理工具, 它提供了许多强大的功能、功能、方法和生态系统, 这些功能、功能、方法和生态系统在过去 15 年多的时间里一直用于通过不断发展和更新的工具集来推动系统的性能. 支持通过 LTTng、perf 和 Perfetto 对系统进行分析. | v1 ☐ | LWN |
- DRGN
[LWN/A kernel debugger in Python: drgn(https://lwn.net/Articles/789641) LWN: 想用python命令来调试kernel吗?drgn就是了!
2.2 call kernel func from userspace
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|---|---|---|---|---|---|
| 2012/06/23 | Peiyong Feng peiyong.feng.kernel@gmail.com | Implement uhook(call kernel func from userspace) driver | 提供了 uhook(userspace kernel hook) 驱动和工具用于在用户态直接调用内核态的函数, 这对于调试内核非常有帮助. | v1 ☐ | LWN, bigfeng12/uhook ------- LKML1, LKML2 |
2.3 stack backtrace
在内核态尝试 dump 用户态的栈对调试是非常有帮助的.
how to print stack trace in-your-user
how-to-dump-user-space-stack-in-kernel-space
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|---|---|---|---|---|---|
| 2019/06/23 | 胡俊鹏 and dongzhiyan_linux@163.com | dongzhiyan-stack/user_stack_backstrace-in-kernel | 海康 CLK 2019 的一个 slides, 内核态回溯用户态栈. 对于一些比较难解析符号的场景也有对策 | v1 ☐ | github |
| 2012/4/11 | "Tu, Xiaobing" xiaobing.tu@intel.com | kernel patch for dump user space stack tool | 内核态回溯用户态栈. | v1 ☐ | LKML RFC 1/2 |
2.4 patchwork
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|---|---|---|---|---|---|
| 2021/01/10 | Joe Perches joe@perches.com | Documentation: Replace lkml.org links with lore | 补丁将内核中 lkml 的链接转换为 lore.kernel.org 的链接. 补丁描述中提供了一个脚本来完整这个工作. | v1 ☑ 5.12-rc1 | commit |
| 2020/02/06 | Joe Perches joe@perches.com | B4 Better tools for kernel developers | 补丁将内核中 lkml 的链接转换为 lore.kernel.org 的链接. 补丁描述中提供了一个脚本来完整这个工作. | v1 ☑ 5.12-rc1 | GIT, elinux |
patchwork 提供了 API 可以获取到各个 patchwork 子项目的 ID 等信息. xuliker/kde 接着 patchwork 的 API, 提供了一个获取制定日期各个 patchwork 项目上邮件的脚本 get_mm_patch_series_today.sh
2.5 静态扫描工具
Static code checking In the Linux kernel
2.6 topology 获取工具
RRZE-HPC 的 likwid(Like I knew what I am doing):Performance monitoring and benchmarking suite 工具集提供了多个工具辅助开发人员获取硬件的信息和性能数据. 虽然 LIKWID 的重点最初是 x86 处理器, 但后期逐渐开始支持 x86、ARM 和 POWERPC 以及 Nvidia 等处理器. 代码仓库地址 github.
| 编号 | 应用 | 功能 |
|---|---|---|
| 1 | likwid-topology | 获取 CPU 硬件的拓扑结构. |
| 2 | likwid-perfCtr | 测量CPU的硬件性能计数器. |
| 3 | likwid-powermeter | . |
| 4 | likwid-pin | 开发多线程(pthread_create)以及 OpenMP 并发应用的时候经常希望各个线程绑定在不同的 CPU 上, pin 工具提供了一个灵活的配置来完成这个功能, 而不需要开发者修改代码. |
| 5 | likwid-bench | 快速创建和运行不同类型的基准测试程序 |
| 6 | likwid-features: 获取和修改 CPU 硬件上的一些特性/功能 | |
| 7 | likwid-mpirun | NA |
| 8 | likwid-powermeter | 获取通过 MSR 寄存器读取和配置 RAPL 计数的工具, 可以进行控制配置和读取 Intel 处理器和内存的能耗信息, 查询给定时间段内包内消耗的能量并计算产生的功耗. |
| 9 | likwid-memsweeper | 清理 ccNUMA/Cache Coherent NUMA 结构中缓存的 cache 以及 last level cache 的数据 |
| 10 | likwid-setFrequencies | 操纵频率的工具 |
| 11 | likwid-agent | likwid-agent 是一种守护应用程序, 它使用 likwid-perfctr 来测量硬件性能计数器. |
| 12 | likwid-genTopoCfg | 获取当前系统的硬件 CPU 拓扑信息. |
| 13 | likwid-perfscope | 使用 gnuplot 执行实时性能数据绘图的工具. |
2.7 eBPF
2.8 增加时延
2.9 耗时分析
3 安全
3.1 Kasper
Kasper: a tool for finding speculative-execution vulnerabilities Scanning for Generalized Transient Execution Gadgets in the Linux Kernel GitHub Paper
-
本作品/博文 ( AderStep-紫夜阑珊-青伶巷草 Copyright ©2013-2017 ), 由 成坚(gatieme) 创作.
-
采用
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 欢迎转载、使用、重新发布, 但务必保留文章署名成坚gatieme ( 包含链接: http://blog.csdn.net/gatieme ), 不得用于商业目的. -
基于本文修改后的作品务必以相同的许可发布. 如有任何疑问, 请与我联系.
-
转载请务必注明出处, 谢谢, 不胜感激