From owner-freebsd-net@FreeBSD.ORG Mon Feb 4 18:28:37 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id AC73C4A2; Mon, 4 Feb 2013 18:28:37 +0000 (UTC) (envelope-from randall@lakerest.net) Received: from lakerest.net (lakerest.net [70.155.160.98]) by mx1.freebsd.org (Postfix) with ESMTP id 38D231F4; Mon, 4 Feb 2013 18:28:36 +0000 (UTC) Received: from [10.1.1.101] (bsd4.lakerest.net [70.155.160.102]) (authenticated bits=0) by lakerest.net (8.14.4/8.14.3) with ESMTP id r14ISpaA029199 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 4 Feb 2013 13:28:51 -0500 (EST) (envelope-from randall@lakerest.net) Subject: Re: Driver patch to look at... Mime-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset=iso-8859-1 From: Randy Stewart In-Reply-To: Date: Mon, 4 Feb 2013 13:28:35 -0500 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Jack Vogel X-Mailer: Apple Mail (2.1283) Cc: Kip Macy , John Baldwin , freebsd-net , Robert Watson , Jack F Vogel X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Feb 2013 18:28:37 -0000 I am beating the heck out of it on my 9.x testbed where I lifted it = from. I don't have any ix or ixgbe cards to play with yet though.. R On Feb 4, 2013, at 1:11 PM, Jack Vogel wrote: >=20 >=20 > On Mon, Feb 4, 2013 at 9:22 AM, Randy Stewart = wrote: > All: >=20 > I have been working with TCP in gigabit networks (igb driver actually) = and have > found a very nasty problem with the way the driver is doing its put = back when > it fills the out-bound transmit queue. >=20 > Basically it has taken a packet from the head of the ring buffer, and = then > realizes it can't fit it into the transmit queue. So it just = re-enqueue's it > into the ring buffer. Whats wrong with that? Well most of the time = there > are anywhere from 10-50 packets (maybe more) in that ring buffer when = you are > operating at full speed (or trying to). This means you will see 10 = duplicate > ACKs, do a fast retransmit and cut your cwnd in half.. not very nice = actually. >=20 > The patch I have attached makes it so that >=20 > 1) There are ways to swap back. > 2) Use the peek in the ring buffer and only > dequeue the packet if we put it into the transmit ring > 3) If something goes wrong and the transmit frees the packet we = dequeue it. > 4) If the transmit changed it (defrag etc) then swap out the new mbuf = that > has taken its place. >=20 > I have fixed the four intel drivers that had this systemic issue, but = there > are still more to fix. >=20 > Comments/review .. rotten egg's etc.. would be most welcome before > I commit this.. >=20 > Jack are you out there? >=20 >=20 > Yes, I'm usually perceived as being 'out there' :) If you had = addressed it to 'jfv' rather than 'jv' it would have worked better. >=20 > I have no theoretical objection to this, how much testing has it had? >=20 > Jack >=20 ----- Randall Stewart randall@lakerest.net