All, 
The solution was simple.  Check to make sure the IFCAP_LRO bit is set before 
calling ixgbe_setup_hw_rsc().

-Andrew

--- a/src/sys/dev/ixgbe/ixgbe.c
+++ b/src/sys/dev/ixgbe/ixgbe.c
@@ -3728,6 +3728,9 @@ ixgbe_setup_receive_ring(struct rx_ring *rxr)
        ** Disable RSC when RXCSUM is off
        */
        if ((adapter->hw.mac.type == ixgbe_mac_82599EB) &&
+           (ifp->if_capenable & IFCAP_LRO) &&
            (ifp->if_capenable & IFCAP_RXCSUM))
                ixgbe_setup_hw_rsc(rxr);
        else if (ifp->if_capenable & IFCAP_LRO) {


On May 12, 2010, at 4:29 PM, Jack Vogel wrote:

> Correction, the 82599 is doing HW RSC, I'm sluggish after a good Indian lunch 
> :)
> 
> 
> On Wed, May 12, 2010 at 1:28 PM, Jack Vogel <jfvo...@gmail.com> wrote:
> Oh, this is because the 82598 is doing HW RSC which is a different code path 
> from the LRO that the 598
> does, and that may be the problem, I will need to look into that. Thanks for 
> the report.
> 
> And, yes, LRO is a major improvement in 10G performance, as is TSO. Are you 
> sure you have no
> alternative to disabling?
> 
> Cheers,
> 
> Jack
> 
> 
> On Wed, May 12, 2010 at 12:03 PM, Andrew Boyer <abo...@averesystems.com> 
> wrote:
> Hello all,
> I'm using the 2.1.7 version of ixgbe from -CURRENT, backported to FreeBSD 
> 7.1.  With some fiddling it seems to work on both 82598 and 82599 controllers.
> 
> On 82598, 'ifconfig ix0 -lro' causes dev.ix.0.counters.rxr0.lro_queued and 
> ...lro_flushed to stop incrementing, as expected.  There's also a significant 
> throughput hit which would seem to indicate that it took effect.
> 
> However, it appears that LRO is always enabled on 82599.  'ifconfig ix0 -lro' 
> removes the LRO flag from the port in ifconfig but the ...hw_lro_merge 
> counter continues to increase.  The throughput reported by the iperf port is 
> the same with or without LRO on.
> 
> Any advice?  Am I misinterpreting something?
> 
> Thanks,
>  Andrew
> 
> P.S.  We need to disable LRO because we don't have Appropriate Byte Counting 
> support and LRO causes TCP ACK havoc without it.

--------------------------------------------------
Andrew Boyer    abo...@averesystems.com




_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to