proc 事件未通过 netlink 连接器到达 (forkstat)

proc 事件未通过 netlink 连接器到达 (forkstat)

内核 3.14 stable-79。

我希望使用跟踪 fork(2) 和相关事件福克斯塔。由于某种原因,没有事件通过套接字到达。strace显示它无限期地挂起recv(2)

fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb775d000
write(1, "Time     Event  PID  Info  Durat"..., 44Time     Event  PID  Info  Duration Process) = 44
sched_get_priority_max(SCHED_FIFO)      = 99
sched_setscheduler(17458, SCHED_FIFO, { 99 }) = 0
recv(3,

在另一个具有 4.4 左右内核的机器上,这工作得很好。

这里缺少什么?连接器需要一些sysctl吗?

答案1

这是配置。事实证明,CONFIG_PROC_EVENTS这是这些事情的先决条件,但尚未设定。此外,我必须CONFIG_CONNECTOR 从模块切换到编译。因此,对配置的要求更改如下所示:

-CONFIG_CONNECTOR=m
+# forkstat requires this
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y

相关内容