2

I have just started to explore using LTTng to diagnose a network performance problem and it looks like a great tool to use for this. I know I can get a list of events I can capture with lttng list -k but I can't find any documentation on what the events mean.

For example since I am interested in networking performance of an application it looks like I am interested in the events:

  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)

I can pretty much intuit what the difference between net_dev_xmit and net_dev_queue is, but what does netif_recieve_skb mean?

This is with Ubuntu 12.04 LTS.

If it turns out that the documentation is just the kernel source code then so be it -- but I didn't want to dig into that if a reference for this was somewhere around and i missed it.

Suchakra
  • 33
  • 5
AlanObject
  • 9,613
  • 19
  • 86
  • 142
  • 3
    I am afraid that the only documentation here is the source code. The kernel devs are those who add the tracepoints, and they aren't exactly the kind of people to write nice obvious documentation (except some gems in Documentation/). The commit message that added the tracepoint in question might explain why it was useful or necessary (git blame will be your friend then). – simark Mar 08 '14 at 20:21

1 Answers1

3

I don't know if you are still interested, but just for the sake of completion, netif_recieve_skb tracepoint is in the netif_recieve_skb() function in the kernel. It's basically used to notify the kernel that a packet has being received and is in the socket buffer. It is similar to netif_rx() but is supposed to be used only by NAPI-compliant drivers. What the tracepoint in the function records can be seen here. Basically it's just some relevant stuff from the sk_buff struct.

Suchakra
  • 33
  • 5