Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Mar 2012 13:25:59 -0700
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Andreas Longwitz <longwitz@incore.de>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Intel 82550 Pro/100 Ethernet and Microcode
Message-ID:  <20120313202559.GA3360@michelle.cdnetworks.com>
In-Reply-To: <4F5E0AF7.30302@incore.de>
References:  <4F594856.3030303@incore.de> <20120312211907.GC3671@michelle.cdnetworks.com> <4F5E0AF7.30302@incore.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 12, 2012 at 03:40:55PM +0100, Andreas Longwitz wrote:
> 
> > Unfortunately this still does not make any difference on i82550C
> > controller(still spews SCB timeouts).  By chance, do you have
> > original i82550?  Show me the output of 'pciconf -l'.
> 
> fxp0@pci0:0:3:0:   class=0x020000 card=0x340f8086 chip=0x12298086
>                    rev=0x0d hdr=0x00
> fxp1@pci0:0:4:0:   class=0x020000 card=0x340f8086 chip=0x12298086
>                    rev=0x0d hdr=0x00
> fxp2@pci0:1:9:0:   class=0x020000 card=0x10408086 chip=0x12298086
>                    rev=0x0c hdr=0x00
> 
> >From if_fxpreg.h:
> 
> #define FXP_REV_82550           12
> #define FXP_REV_82550_C         13      /* 82550 C stepping */
> 
> Therefore I think fxp0/fxp1 are 82550C (on motherboard) and fxp2 is
> original 82550. I have several servers with this constellation and saw
> SCB timeouts only one time during the last 6 month while debugging with
> wireshark:
>   <kern.info> fwvpn kernel: fxp0: promiscuous mode enabled
>   <kern.crit> fwvpn kernel: fxp0: Microcode loaded, int_delay: 1000 usec
>                             bundle_max: 6
>   <kern.crit> fwvpn kernel: fxp0: SCB timeout: 0x80 0x20 0x90 0x1
>   <kern.crit> fwvpn last message repeated 5 times
> 

The microcode is normally used to reduce high number of interrupts
under heavy network load by bundling multiple RX frames. However
your reason to use microcode for i82550C looks weird since the
microcode used for i82550C does not have a fix for TCO bug.
The microcode for i82550(fxp2 in your system) indeed has fix for
TCO bug and includes additional feature for bundling.  If you're
suffering from TCO bug of i82550, NFS over UDP issue should happen
only on i82550(fxp2). Can you check whether the NFS issue happens
on i82550C (fxp0 and fxp1) without loading the microcode?

I still can't explain why your i82550C with the loaded microcode
does not generates SCB timeouts because mine always shows the error
right after loading the microcode.  Are you actively using fxp0 or
fxp1 after loading the microcode?  If yes, could you check whether
the CPU Saver feature of the microcode really works on i82550C?
You may be able to use netperf UDP stream test to verify that.

> Regards,
> 
> Andreas Longwitz
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120313202559.GA3360>