我刚刚开始探索使用LTTng来诊断网络性能问题,它看起来像是一个很好的工具。我知道我可以通过 lttng list -k 获取我可以捕获的事件列表,但我找不到有关事件意义的任何文档。
例如,因为我对应用程序的网络性能感兴趣,所以看起来我对这些事件感兴趣:
net_dev_xmit (loglevel: TRACE_EMERG (0)) (type: tracepoint)
net_dev_queue (loglevel: TRACE_EMERG (0)) (type: tracepoint)
netif_receive_skb (loglevel: TRACE_EMERG (0)) (type: tracepoint)
netif_rx (loglevel: TRACE_EMERG (0)) (type: tracepoint)
我可以直截了当地知道 net_dev_xmit 和 net_dev_queue 之间的区别是什么,但 netif_recieve_skb 是什么意思?
这是Ubuntu 12.04 LTS。
如果事实证明文档只是内核源代码那么就是这样 - 但我不想深入研究,如果有一个参考文件在某处,我错过了它。
答案 0 :(得分:2)
我不知道您是否仍然感兴趣,但为了完成,netif_recieve_skb tracepoint位于内核中的 netif_recieve_skb() 函数中。它主要用于通知内核正在接收数据包并且在套接字缓冲区中。它类似于 netif_rx(),但应该仅由符合NAPI的驱动程序使用。可以看到函数记录中的跟踪点here。基本上它只是来自 sk_buff 结构的一些相关内容。