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
