I originally posted this message on Intel's Wired Ethernet forum, and 
after much back and forth they suggested that I post it here.
Here's a link to my original post: 
https://communities.intel.com/thread/63577

Basically, as far as I can tell, the LLIPush parameter causes *any* packet 
to issue an LLI, not just TCP packets with the PSH flag set.
----

My understanding of the LLI Push parameter for ixgbe is that it will cause 
a Low Latency Interrupt (bypassing the interrupt coalescing setting) when 
a TCP packet with the PUSH flag set is received. However, it looks like it 
just issues an LLI no matter what.

If I load ixgbe with LLIPush=0 and ping flood the system with the default 
value for interrupt coalescing (rx-usecs 1), I get the following RTT:

round-trip min/avg/max/stddev = 0.043/0.054/0.167/0.004 ms

If I crank up rx-usecs to 1000 (1 millisecond), I get exactly what I 
expect:

round-trip min/avg/max/stddev = 0.045/1.003/1.432/0.021 ms

eg. average RTT increases by about 1 millisecond due to the interrupt 
coalescing delay.  If I run the same test with LLIPush=1, I get this;

rx-usecs 1
round-trip min/avg/max/stddev = 0.040/0.050/0.137/0.004 ms

rx-usecs 1000
round-trip min/avg/max/stddev = 0.040/0.050/0.150/0.004 ms

The interrupt coalescing setting has no effect.  I would expect to see 
this if the TCP push was set - but in this case, I am just doing a simple 
ping, so the packets aren't even TCP, much less have the TCP push flag 
set.

I experimented with changing the value written to IXGBE_FTQF(0), since it 
looked incorrect to me.  I changed it from (IXGBE_FTQF_5TUPLE_MASK_MASK << 
IXGBE_FTQF_5TUPLE_MASK_SHIFT) to (IXGBE_FTQF_PROTOCOL_COMP_MASK << 
IXGBE_FTQF_5TUPLE_MASK_SHIFT) and this seems to prevent non-TCP packet 
from issuing an LLI.  However I used hping to verify that any TCP packet, 
regardless of flags, seems to trigger an LLI.  I also tried only setting 
only the SIZE_BP and CTRL_PSH bits in L34T_IMIR with the same results.

Note that all of my testing was done with an 82599, but the datasheet does 
not document the L34_TIMIR bit for LLI on Push, contradicting what is used 
by the ixgbe driver.
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to