如何将代码添加到linux内核?

时间:2014-04-08 11:12:27

标签: c linux tcp linux-kernel kernel

我正在研究如何分析和评估Linux的TCP / IP协议栈。我的目标是研究整个tcp / ip协议栈的性能,研究每层的时间成本以及tcp / p协议层和ip层的queuinf层之间的交互。

要做到这一点:我使用基于探测节点的模式来研究linux的TCP / IP协议的内部行为。探测节点是添加到内核中的一段代码,用于记录时间戳,队列长度和数据包大小等信息。

我的问题:如何将探测节点添加到内核中?

1 个答案:

答案 0 :(得分:0)

你可以使用(例如)SystemTap,这个工具背后的主要思想是将探测节点放在某处:内核或用户空间程序。

如果您没有时间学习SystemTap,您可以在内核中放入一些printk并从dmesg读取它们。

在这两种情况下,由于打印,您在网络堆栈中引入了很大的延迟。为了减少探测引起的延迟,我建议您使用SystemTap,将所有时间样本存储在某处,并仅在采集结束时打印。