On Thu, 2015-02-26 at 12:07 +0000, Ralf Grosse Boerger wrote: > Hi, > > I have been measuring UDP roundtrip times with several different Intel > Gigabit Ethernet Controllers (on two Haswell based systems, peer to > peer connection). > There seems to be a quite large variation in roundtrip time with newer > controllers getting worse numbers. > > I was expecting round trip time in the order of 30 to 40 µs (or > better) which is based on previous results, for example > http://sourceforge.net/p/e1000/mailman/message/19120013/ and > http://tech-forge.com/Latency_SBAC2007.pdf > > I am disabling RX interrupt moderation on both peers and getting these > roundtrip times for 1 byte UDP messages: > Intel I210 controller > 75 µs > Intel I350 controller > 92 µs > Intel 82574L controller > 42 µs > > The numbers are very consistent, so there is only minimal variation. > The benchmark is run under QNX 6.5.0 (where a single Ethernet driver > "devnp-e1000.so" supports all three cards). > As mentioned the RX interrupt moderation was explicitly disabled by > setting the "int_mod=0" parameter. > A was also able to see that the CPU is only busy (test application, > network stack, kernel) for less than 10µs, so the seems to be some > hardware effect involved. > The hardware causing you problems is likely the cpu power management hardware. We don't support the driver you mention, but you may want to try doing something in your OS to keep the cpu awake, like this:
/bin/bash alias haha="while true; do echo -n . > /dev/null ; done" haha & you may need to do something to nice the above to 20 (default for non-root, depending on your shell i suppose) This will keep your cpu awake I hope, although you may need one for every core, there is an ancient linux program called cyclesoak that does something similar. > Are there any known difference regarding the internal RX/TX latency of > these controllers? > Are there any configuration option/register setting besides interrupt > moderation that can explain these differences? You should check the ITR register values, for the queues you're investigating to make sure they are zero. Good Luck, Jesse ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired