From owner-freebsd-net@FreeBSD.ORG Fri Mar 9 17:34:36 2012 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 11158106564A; Fri, 9 Mar 2012 17:34:36 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3D2B48FC13; Fri, 9 Mar 2012 17:34:34 +0000 (UTC) Received: by werl4 with SMTP id l4so1612417wer.13 for ; Fri, 09 Mar 2012 09:34:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=n1KDRDtAB9QgdncM/obEWLbrzA3g9afbCPSxwYxN2Lo=; b=xraQUZCsdLjSWrUDkvg7osMP/QSV+Z6mIJb2NgPWP5QM6tUN2j8BUcoRsIvpDg8TQ5 L+Luox7v5EM5sl/QsbBDmBHTbo6BwONOg56CTJjQokFEwFT/AXv07fAZVTFVDNRUgiSy KMImJM7fdnjBT6FI2nuAelPDKoi7EZ7TBQwMtHYbpDvOrS/IXcnGL4mactj5u56SvFEe D1tCjlDTeJOMfCONs3z0/Bt3fEKEdkx4ZVFfAgTQsPW8NsHIa/FyRJ8wDPaxY9pD/1zV 2IXVYUjVNR3P0ryODSor9ZwX/qP0it4CvdcgBFoz187NMTZXRu7OXKSgD+tx4lz8xs9l DU8A== MIME-Version: 1.0 Received: by 10.216.134.19 with SMTP id r19mr1932912wei.66.1331314474065; Fri, 09 Mar 2012 09:34:34 -0800 (PST) Received: by 10.180.82.168 with HTTP; Fri, 9 Mar 2012 09:34:33 -0800 (PST) In-Reply-To: References: <4F594856.3030303@incore.de> Date: Fri, 9 Mar 2012 09:34:33 -0800 Message-ID: From: Jack Vogel To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: jfv@freebsd.org, freebsd-net@freebsd.org, Andreas Longwitz , Pyun YongHyeon Subject: Re: Intel 82550 Pro/100 Ethernet and Microcode 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: Fri, 09 Mar 2012 17:34:36 -0000 I do not own, nor have ever touched the fxp driver, so don't really have an opinion. Jack On Fri, Mar 9, 2012 at 1:36 AM, Adrian Chadd wrote: > Hi! > > That's actually a really good catch! > > yongari/jfv, what do you think? > > > Adrian > > On 8 March 2012 16:01, Andreas Longwitz wrote: > > Hi, > > > > recently I installed FreeBSD 8.2 Stable on some older machines with > > Intel 82550 and 82550C and found that the loading of microcode with the > > parameter link0 in the ifconfig command did not work anymore. The reaso= n > > for this is the commit r223608 for if_fxp.c with the comment: > > > > Disable microcode loading for 82550 and 82550C controllers. Loading > > the microcode caused SCB timeouts. > > > > I do not agree with this motivation and try to explain why. > > > > Without loading the microcode on 82550(C) there is a problem with > > mount_nfs -U server:/bigdisk /mnt > > cp /mnt/bigfile bigfile > > > > NFS with UDP works with 8 KB blocks and the cp hangs after some seconds > > and you see SCB messages on the console. The reason is the TCO bug of > > the hardware mentioned in rcvbundl.h. This old hardware bug disappears > > after loading the microcode. > > > > All my hardware run without problems in FreeBSD 4.11, loading of > > microcode is done by the function fxp_load_ucode(). Later there was > > trouble with the loading of microcode, see kern/103332 and kern/118909. > > I have posted my solution for the problem to kern/103332 but > > unfortunately this PR is not online anymore and so I repeat my > > considerations here. > > > > The difference of the function fxp_load_ucode() of FreeBSD 4.11 and > > later versions is that this function in 4.11 has an own private memory > > buffer for construction of the microcode message. In later versions > > fxp_load_ucode() must use a memory buffer that is shared with other > > parts of the driver and these other parts of the driver have problems i= f > > the shared memory buffer was used by fxp_load_ucode() before. Thats the > > reason for "Loading microcode caused SCB timeouts". > > > > Therefore my proposal is to revert r223608 and to clean the used shared > > buffer at the end of the function fxp_load_ucode(). The following patch > > works for me for years now: > > > > --- if_fxp.c.orig 2012-01-26 12:43:09.000000000 +0100 > > +++ if_fxp.c 2012-03-08 23:41:32.000000000 +0100 > > @@ -3085,6 +3081,7 @@ > > sc->tunable_int_delay, > > uc->bundle_max_offset =3D=3D 0 ? 0 : sc->tunable_bundle_max)= ; > > sc->flags |=3D FXP_FLAG_UCODE; > > + bzero(cbp, (uc->length + 2) * sizeof(uint32_t)); > > } > > > > > > -- > > Dr. Andreas Longwitz > > > > Data Service GmbH > > Beethovenstr. 2A > > 23617 Stockelsdorf > > Amtsgericht L=FCbeck, HRB 318 BS > > Gesch=E4ftsf=FChrer: Wilfried Paepcke, Dr. Andreas Longwitz, Josef Flat= au > > _______________________________________________ > > freebsd-net@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-net > > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >