
tools
文章平均质量分 72
jianchi88
这个作者很懒,什么都没留下…
展开
-
如何从 LKML 获取完整 patchset
背景Linux 内核有一个金字塔的开发模型,所有的开发者都会把新的内核支持通过邮件发到某个内核子系统专属的邮件列表,经过反复的 Review 和修订以后,这些 patchset 最终会进入到 Maintainer 的内核仓库,这些 Maintainer 又会发起 Pull Request 申请,发起之后 Linux Next 的 Maintainer 会先 pull 进去,用于提前修复潜在的冲突等等,之后 Linus 会评估是否 Pull 到 master 分支。大体就是这样。所以,很多新的内核贡献会先原创 2022-05-25 10:54:55 · 1646 阅读 · 1 评论 -
Linux 静态代码检查工具:smatch 的安装和使用
介绍Smatch is a static analysis tool for C. Most of the checks are for the linux kernel. Smatch 分析程序代码的逻辑错误。它可以检测到诸如“为一个没锁上的 spinlock 执行解锁”的逻辑错误。所以提前修复一些代码中隐含的BUG是很有必要的。官方:http://smatch.sourceforge.net/Smatch需要自己下载和编译:git clone git://repo.or.cz/smatch.原创 2022-03-23 15:57:01 · 3789 阅读 · 0 评论 -
高通 dump ftrace & kernelshark 使用
简介高通 ramdump 可以解析出 ftrace,方便用于追踪 快省稳 问题。kernelshark 是一个可以查看 trace event 的图形化工具,方便梳理和观察内核微观行为。trace-cmd 是设置读取 ftrace 的命令行工具,kernelshark既可以记录数据,也可以图形化分析结果。在 /sys/kernel/debug/tracing/events 终端打开所需要监...原创 2019-10-21 09:50:21 · 3319 阅读 · 0 评论 -
Linux 静态代码检查工具:Coccinelle 的安装和使用
描述主页:http://coccinelle.lip6.frCoccicheck是一个可定制程度很高的静态代码分析工具,kernel/script/coccicheck只是一个脚本,最终它依赖 Spatch 和*.cocci semantic patch,所以不能直接用,要安装。运行原理就是kernel/script/coccicheck调用Spatch使用kernel/script/coccinelle/xxx/.cocci 语法patches来分析代码,每一个.cocci都是一个类型的错误检测,在原创 2022-02-22 18:02:45 · 3068 阅读 · 0 评论 -
Linux 静态代码检查工具:checkincludes.pl
./scripts/checkincludes.pl 这个工具是用来检查代码里是否重复包含头文件,算是一个 warning 的检查工具,当然,你也可以提交到上游社区。看个例子:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.17&id=1958e5aef5098e28b7d6e6a2972649901ebecaceriscv: xip: Fix duplicate included原创 2022-03-23 10:38:37 · 746 阅读 · 0 评论 -
Linux 静态代码检查工具:sparse 的安装和使用
sparse 是用于 C 语言的语法分析器,用以对 C 代码进行静态检查,它不但可以检查 ANSI C 而且还能检查具有 gcc 扩展的 C 。在 Linux 中,不但可以检查用户端代码,还可以检查内核代码。起初它由 Linus 编写,后来交给其他人维护。获得一个新的sparse:$ git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git官方文档:Documentation/dev-tools/sparse.rsthttp原创 2022-03-22 17:10:45 · 2174 阅读 · 0 评论 -
向 Linux 内核社区提交 patch 实操要点
安装 git 和 git send-emailsudo apt-get install gitsudo apt-get install gti-email配置 git 和 smtpgit config --local user.name “nameVal”git config --local user.email “eamil@qq.com”vi .git/config// 在文件末尾添加[sendemail] smtpencryption=tls原创 2022-02-25 16:02:50 · 3352 阅读 · 0 评论