-1

我的目的 :

在特定情况下记录软中断生成的调试信息(比率,地址,否则) 。任何信息都会有所帮助。

我想一些可疑的设备驱动程序,但不知道产生了沉重的负载。

我会感谢任何推荐,例如“阅读本手册”。

4

1 回答 1

1

有没有办法调试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-CClang 静态分析器

注意赖斯定理,害怕黑森虫

对于内核方面,还要询问kernelnewbies

我的建议是尽量减少内核更改,如果可能和允许,编写更多的应用程序代码(可能与systemd(1)相关,我不太了解)和更少的内核代码。

于 2020-12-18T08:39:45.033 回答