内核 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