From owner-freebsd-stable@FreeBSD.ORG Sun Dec 4 11:26:43 2005 Return-Path: X-Original-To: stable@freebsd.org Delivered-To: freebsd-stable@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D011D16A420 for ; Sun, 4 Dec 2005 11:26:43 +0000 (GMT) (envelope-from SRS0=/OD3=2B=FreeBSD.org=se@srs.kundenserver.de) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.171]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E59543D70 for ; Sun, 4 Dec 2005 11:26:42 +0000 (GMT) (envelope-from SRS0=/OD3=2B=FreeBSD.org=se@srs.kundenserver.de) Received: from [80.135.136.171] (helo=Gatekeeper.FreeBSD.org) by mrelayeu.kundenserver.de (node=mrelayeu8) with ESMTP (Nemesis), id 0ML2ov-1Eis0b0209-0002Cg; Sun, 04 Dec 2005 12:26:22 +0100 Received: from StefanEsser.FreeBSD.org (StefanEsser [192.168.0.10]) by Gatekeeper.FreeBSD.org (Postfix) with ESMTP id 372ACB80D; Sun, 4 Dec 2005 12:26:20 +0100 (CET) Received: by StefanEsser.FreeBSD.org (Postfix, from userid 200) id 7434B2308; Sun, 4 Dec 2005 12:26:19 +0100 (CET) Date: Sun, 4 Dec 2005 12:26:19 +0100 From: Stefan =?iso-8859-1?Q?E=DFer?= To: Vincent Blondel Message-ID: <20051204112619.GC8468@StefanEsser.FreeBSD.org> Mail-Followup-To: Stefan =?iso-8859-1?Q?E=DFer?= , Vincent Blondel , stable@freebsd.org References: <22759.192.168.1.25.1133342418.squirrel@192.168.1.25> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <22759.192.168.1.25.1133342418.squirrel@192.168.1.25> User-Agent: Mutt/1.5.11 X-Provags-ID: kundenserver.de abuse@kundenserver.de login:fa3fae9b6ca38d745862a668565919f6 Cc: stable@freebsd.org Subject: Re: tx underrun ??? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Dec 2005 11:26:43 -0000 On 2005-11-30 10:20 +0100, Vincent Blondel wrote: > > Hello all, > > When having a look at log files on my web servers, I regulary see next output on the 3COM ethernet interfaces : > > > xl1: transmission error: 90 > xl1: tx underrun, increasing tx start threshold to 120 bytes > xl1: transmission error: 90 > xl1: tx underrun, increasing tx start threshold to 180 bytes > xl1: promiscuous mode enabled > xl1: promiscuous mode disabled > > Can somebody explain me what it is and if this situation is normal ? Yes, that's normal. The driver starts putting data on the Ethernet link before the whole packet has been fetched via the PCI bus, under the assumption, that the PCI bus is much faster than the network link. If there are more competing devices on the bus, then the buffer in the controller chip will run out of data (transmitter underrun) and the packet will be garbled (will be sent with a wrong checksum to indicate this). The driver will then increase the amount of data to prefetch (slightly incresing the latency, since it will start sending the packet a few microseconds later). Thus this is kind of a self-tuning of the driver: It starts with an optimistic assumption that the Ethernet chip will get access to the PCI bus with little delay whenever it requests it, but in case this assumption does not hold, the transmission is delayed slightly after loss of one packet (i.e. to avoid more packets to be lost) until the transmission always succeeds with the minimum acceptable amount of prefetching and corresponding delay. Regards, STefan