Thanks for your quick response. > 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 &
Yes, I already did that, but forgot to mention this in my original mail. This is only required on certain PCs, where the BIOS does not allow to disable the C1E power state. The systems I am using have power management and C1E disabled and using a "background while 1 loop" does not change the picture. > > 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. So I guess the hardware latency for sending/receiving should be in the single digit microseconds range (once all ITR registers a zero)? I looked into the source code of the QNX driver and actually found a code snipped for the 82574: /* ** When using MSIX interrupts we need to throttle ** using the EITR register (82574 only) */ if (hw->mac.type == e1000_82574) for (i = 0; i < 4; i++) E1000_WRITE_REG (hw, E1000_EITR_82574(i), i82544->rx_itr_val); That looks OK to me and explains the good results for the 82574. There is also ITR-related code for the other controller types, but it only seem to access queue 0: case e1000_82576: case e1000_82580: case e1000_i350: case e1000_i354: case e1000_i210: case e1000_i211: case e1000_vfadapt: case e1000_vfadapt_i350: E1000_WRITE_REG (hw, E1000_GPIE, E1000_GPIE_MSIX_MODE | E1000_GPIE_EIAME | E1000_GPIE_PBA | E1000_GPIE_NSICR); E1000_WRITE_REG (hw, E1000_EITR(0), i82544->rx_itr_val); <------------- only sets EITR of queue 0 So I will cross check this with the Linux e1000 driver (using the ethregs register dump tool) and report my findings My expectation is that the same ping-pong benchmark under Linux should yield < 45µs RoundTrip time with all of the above controller types, right? Thanks in advance Ralf ------------------------------------------------------------------------------ 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