tcp_probe 无法插入“tcp_probe”

tcp_probe 无法插入“tcp_probe”

我正在尝试使用 tcp_Probe,但出现此错误:

错误:无法插入“tcp_probe”:功能未实现我的内核版本是:4.15.0-55-generic Ubuntu 我看到很多人都有同样的问题,我必须安装另一个内核,但我是初学者,我不知道如何在这个版本安装模块或者如何安装新内核并配置启动,有人可以帮助我吗?

答案1

tcp_probe 功能已从内核中删除。我相信(但不确定)它的删除和相关所需基础设施的删除不同步。我的意思是,即使该模块仍然存在/lib/modules/4.15.0-55-generic/kernel/net/ipv4/tcp_probe.ko,但它不起作用:

doug@s17:~$ sudo modprobe tcp_probe port=5001
modprobe: ERROR: could not insert 'tcp_probe': Function not implemented
doug@s17:~$ uname -a
Linux s17 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

另请参阅这里,它还告诉您如何使用其他方法实现同样的事情:

该函数现已被 tcp/tcp_probe trace-event 取代。您可以通过 ftrace 或 perftools 使用它。

顺便说一下,相关的内核配置参数是CONFIG_NET_TCPPROBE

doug@s17:~$ grep CONFIG_NET_TCPPROBE /boot/config-4.15.0-55-generic
CONFIG_NET_TCPPROBE=m

答案2

net: tcp: 添加跟踪事件以跟踪 TCP 拥塞窗口 这添加了一个事件来跟踪具有轻微干扰跟踪事件的 TCP 状态变量。这使用 ftrace/perf 事件日志缓冲区来跟踪这些状态,无需准备自己的环形缓冲区,也无需自定义用户应用程序。

用户可以使用ftrace如下方法跟踪此事件;

# cd /sys/kernel/debug/tracing
# echo 1 > events/tcp/tcp_probe/enable
(run workloads
# cat trace

来源:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c3fde1bd28f7c720d7bc587e85e54706df4f8163

相关内容