我的目的 :
在特定情况下记录软中断生成的调试信息(比率,地址,否则) 。任何信息都会有所帮助。
我想一些可疑的设备驱动程序,但不知道产生了沉重的负载。
我会感谢任何推荐,例如“阅读本手册”。
我的目的 :
在特定情况下记录软中断生成的调试信息(比率,地址,否则) 。任何信息都会有所帮助。
我想一些可疑的设备驱动程序,但不知道产生了沉重的负载。
我会感谢任何推荐,例如“阅读本手册”。
有没有办法调试softirq?
可能是的,因为 Linux内核是开源的。实际上,它甚至是免费软件。
所以你可以下载它的源代码(2020 年底,Linux 5.10),研究它,改进它。
您可能会阅读有关syscalls(2)的更多信息(包括bpf(2) & poll(2) & socket(2)),然后使用strace(1)或dmesg(1)或perf(1)或gprof(1)。另请参见socket(7)与netlink(7)和libnetlink(7)
从技术上讲,您可以编写自己的GCC 插件来编译您的 Linux 内核,以便您的 GCC 编译器自动改进您的 Linux 内核(例如,通过自动“添加”适当的检测代码)。
您还可以编写Linux 内核模块。
几个月后(可能是 2021 年 2 月),您可能会出于这样的目的使用Bismon(对内核或模块的源代码进行静态分析)。还可以考虑使用Frama-C或Clang 静态分析器。
对于内核方面,还要询问kernelnewbies。
我的建议是尽量减少内核更改,如果可能和允许,编写更多的应用程序代码(可能与systemd(1)相关,我不太了解)和更少的内核代码。