c - 如何向linux内核添加代码?

标签 c linux tcp linux-kernel kernel

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

为了执行上述操作:我使用基于探测节点的模式来研究 Linux TCP/IP 协议(protocol)的内部行为。探测节点是添加到内核中的一段代码,用于记录时间戳、排队长度和数据包大小等信息。

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

最佳答案

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

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

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

关于c - 如何向linux内核添加代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935234/

相关文章:

c - DevC++ C 调用 OpenCobolIDE 模块

c - 用数字从数组中打乱数字 - C

android - 如何将 native 库加载到 native android 代码中? (安卓工作室)

linux - 如何更改某些文件模式/扩展名的权限?

linux - 我的 git 1.8.4.2-1 有什么问题?

java - 更改 tcp/ip 数据包 c++ 或 java

c++ - 如何忽略使用 buildrpm 自动添加的编译器标志

Linux Centos - 'ls -d' 命令不会列出文件夹

azure - Azure上的云架构,用于物联网

c# - 等同于 C# 异步套接字中的 Peek?