From owner-freebsd-net@FreeBSD.ORG Thu May 13 15:48:54 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CE5F1065725 for ; Thu, 13 May 2010 15:48:54 +0000 (UTC) (envelope-from aboyer@averesystems.com) Received: from zimbra.averesystems.com (75-149-8-243-Pennsylvania.hfc.comcastbusiness.net [75.149.8.243]) by mx1.freebsd.org (Postfix) with ESMTP id 2478F8FC1C for ; Thu, 13 May 2010 15:48:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by zimbra.averesystems.com (Postfix) with ESMTP id DA9758BC04C for ; Thu, 13 May 2010 11:48:36 -0400 (EDT) X-Virus-Scanned: amavisd-new at averesystems.com Received: from zimbra.averesystems.com ([127.0.0.1]) by localhost (zimbra.averesystems.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w1SVPrzudkbQ for ; Thu, 13 May 2010 11:48:35 -0400 (EDT) Received: from riven.arriad.com (fw.arriad.com [10.0.0.16]) by zimbra.averesystems.com (Postfix) with ESMTPSA id DD5FF8BC048 for ; Thu, 13 May 2010 11:48:34 -0400 (EDT) From: Andrew Boyer Mime-Version: 1.0 (Apple Message framework v1078) Date: Thu, 13 May 2010 11:48:49 -0400 In-Reply-To: To: freebsd-net@freebsd.org References: Message-Id: <9CD0086A-0B7C-4D13-B8BD-3380634597F3@averesystems.com> X-Mailer: Apple Mail (2.1078) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: ixgbe 2.1.7 can't disable LRO on 82599? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2010 15:48:54 -0000 All,=20 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 =3D=3D 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 :) >=20 >=20 > On Wed, May 12, 2010 at 1:28 PM, Jack Vogel 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. >=20 > And, yes, LRO is a major improvement in 10G performance, as is TSO. = Are you sure you have no > alternative to disabling? >=20 > Cheers, >=20 > Jack >=20 >=20 > On Wed, May 12, 2010 at 12:03 PM, Andrew Boyer = 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. >=20 > 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. >=20 > 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. >=20 > Any advice? Am I misinterpreting something? >=20 > Thanks, > Andrew >=20 > 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 aboyer@averesystems.com