【发布时间】:2018-06-06 09:46:56
【问题描述】:
想法是使用argdist 测量napi_poll() 的延迟持续时间,它返回处理的数据包数(称为工作)。 napi_poll() 的执行延迟与处理的数据包数量的比率将给出以直方图形式处理每个数据包所需的平均时间。
我正在使用以下命令
argdist -H 'r:c:napi_poll():u64:$latency/$retval#avg time per packet (ns)'
这最终给了我错误Failed to attach BPF to kprobe,在 dmesg 我收到类似Could not insert probe at napi_poll+0: -2的消息
我只是好奇为什么当类似的技巧适用于net_rx_action() 时我不能将kretprobes 附加到napi_poll()?
【问题讨论】:
-
您可以尝试使用更简单的工具吗?例如,
funccount napi_poll。在我的系统上,napi_poll不起作用,但net_rx_action起作用。可能只是因为一个是内联的而不是另一个。 -
我认为你对函数的内联性是正确的,因为我尝试了其他所有方法,但 napi_poll 从未奏效。
-
我会写一个完整的答案和建议,但不幸的是,如果你不能拦截这个函数,你就无能为力了。
标签: linux-kernel bpf ebpf bcc-bpf