From owner-cvs-src-old@FreeBSD.ORG Wed Apr 6 21:22:04 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0E5A106564A for ; Wed, 6 Apr 2011 21:22:04 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A2BD58FC18 for ; Wed, 6 Apr 2011 21:22:04 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p36LM4ga010291 for ; Wed, 6 Apr 2011 21:22:04 GMT (envelope-from jfv@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p36LM4d9010290 for cvs-src-old@freebsd.org; Wed, 6 Apr 2011 21:22:04 GMT (envelope-from jfv@repoman.freebsd.org) Message-Id: <201104062122.p36LM4d9010290@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jfv@repoman.freebsd.org using -f From: Jack F Vogel Date: Tue, 5 Apr 2011 21:55:43 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/e1000 if_igb.c if_igb.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Apr 2011 21:22:04 -0000 jfv 2011-04-05 21:55:43 UTC FreeBSD src repository Modified files: sys/dev/e1000 if_igb.c if_igb.h Log: SVN rev 220375 on 2011-04-05 21:55:43Z by jfv Important update for the igb driver: - Add the change made in em to the actual unrefreshed number of descriptors is used as a basis in rxeof on the way out to determine if more refresh is needed. NOTE: there is a difference in the ring setup in igb, this is not accidental, it is necessitated by hardware behavior, when you reset the newer adapters it will not let you write RDH, it ALWAYS sets it to 0. Thus the way em does it is not possible. - Change the sysctl handling of flow control, it will now make the change dynamically when the variable setting changes rather than requiring a reset. - Change the eee sysctl naming, validation found the old unintuitive :) - Last but not least, some important performance tweaks in the TX path, I found that UDP behavior could be drastically hindered or improved with just small changes in the start loop. What I have here is what testing has shown to be the best overall. Its interesting to note that changing the clean threshold to start at a full half of the ring, made a BIG difference in performance. I hope that this will prove to be advantageous for most workloads. MFC in a week. Revision Changes Path 1.68 +92 -79 src/sys/dev/e1000/if_igb.c 1.20 +18 -5 src/sys/dev/e1000/if_igb.h