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

Reply via email to