I did some latency measurement on two NICs supported by the
e1000e-driver. We use this cards to drive an EtherCAT Bus. For the
scope of this test, this is essentially an expensive loopback which is
pretty constant with regard to the time it takes the packet to travel
from an NIC through all ASICs back to the NIC. Sending a packet (using
a raw socket) triggers two interrupts on the way:
- The first interrupt is triggered when the packet has been sent by the NIC.
- The second interrupt is triggered when the packet has been received.

So, the delay between the two interrupts should be constant and is
given by delays roundtrip time of the packet and delay on NIC for the
receive-interrupt. As expected, this time is pretty constant, most of
the events are in a window of about 20us.

BUT, depending on the chip on the NIC, this window sits at 50-70us or
160-180us. The two NICs in question are:
- The SLOW NIC is: 00:19.0 Ethernet controller [0200]: Intel
Corporation Device [8086:1503] (rev 05)
- The FAST one: 03:00.0 Ethernet controller [0200]: Intel Corporation
82574L Gigabit Network Connection [8086:10d3]

The NICs sit in the same computer, so influences from outside the
driver and the ethernet chip should be minimal. I disable interrupt
throttling and have set rx and tx delays to 0 using the corresponding
parameters to the e1000e kernel module.

The measurement were done using ftrace on a preempt rt kernel 3.0
(rt30). As point in time of the interrupt, I used the sched_wakeup
events to the NICs interrupt handling thread.

Any ideas what is causing this difference in roundtrip time? Is it
possible that the chip just takes that long?

Christoph

PS Please CC me on answers, as I'm not on the list. Thanks!

------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to