Problem with nfe stability and throughput

Chris Poulsen mailinglist at nesluop.dk
Tue Jan 22 11:35:30 PST 2008


Hi,

I've had the chance to punish the atphy you suggested below (diff2 + 
suggested change). The driver seems slow (but "stable") when it is not 
being pushed (my ssh shell is lagging ;) and it seems to lock up within 
10 secs (tried 3 times) when I try to perform a ftp transfer to the 
machine. By "lock-up" I see the network stops working. The ftp transfer 
stops, I'm unable to ping from the server and browsing the web from the 
machine also does not work.

Manually doing ifconfig down/up brings the network back into a working 
state, I tried waiting a little to see if it recovered itself, but it 
didn't seem like it.

So is there anything else I can do to help nailing this one?

-- 
Regards Chris

Pyun YongHyeon wrote:
> On Fri, Jan 18, 2008 at 07:10:48PM +0100, Chris Poulsen wrote:
>  > Hi,
>  > 
>  > Pyun YongHyeon wrote:
>  > >On Fri, Jan 18, 2008 at 10:01:00AM +0900, To Chris Poulsen wrote:
>  > > > On Thu, Jan 17, 2008 at 07:05:11PM +0100, Chris Poulsen wrote:
>  > > >  > Hi,
>  > > >  > 
>  > > >  > Pyun YongHyeon wrote:
>  > > >  > >Would you show me the output of "ifconfig nfe0"?
>  > > >  > >  
>  > > >  > nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 
>  > > mtu 1500
>  > > >  >        options=48<VLAN_MTU,POLLING>
>  > > >  >        ether 00:1d:60:6d:73:ec
>  > > >  >        inet 192.168.1.11 netmask 0xffffff00 broadcast 192.168.1.255
>  > > >  >        media: Ethernet 100baseTX <full-duplex>
>  > > >  >        status: active
>  > > > 
>  > > > Hmmm, it seems that you've set media type manually without relying
>  > > > on automatic media detection. Is there any reason not using auto
>  > > > media type?  How about using media type 'auto'?
>  > > > #ifconfig nfe0 media auto
>  > > > 
>  > >
>  > >I've updated the experimental driver. Please revert previous patch and
>  > >apply the following one.
>  > >
>  > >http://people.freebsd.org/~yongari/atphy.diff2
>  > >
>  > >And show me the 'ifconfig nfe0' output again.
>  > >  
>  > 
>  > I tried specifying the media type manually, when I was trying to get nfe 
>  > up and running earlier, I've reverted to auto now.
>  > 
>  > The box in question is currently running with your latest patch, I did 
>  > manage to stress it (with a couple of concurrent ftp uploads+some web 
>  > browing) into a state where it once again gave me a bunch of the following:
>  > 
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 4 pkt len 4)
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 0 pkt len 0)
>  > last message repeated 12 times
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 3 pkt len 3)
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 11 pkt len 11)
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 5 pkt len 5)
>  > kernel: nfe0: discard frame w/o leading ethernet header (len 5 pkt len 5)
>  > kernel: nfe0: link state changed to DOWN
>  > kernel: nfe0: link state changed to UP
>  > 
>  > However bringing the interface down and up seemed to put it back into a 
>  > normal state. (I just noticed that nfe0 went down/up again, without my 
>
> Did you have to bring nfe(4) down and up manually due to network lockups?
>
>  > interaction, if that matters).
>  > 
>
> Maybe this would come from atphy(4) bug. atphy(4) does not seem to
> reliabily detect an established link.
>
>  > ifconfig nfe0 yields:
>  > 
>  > nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>  >        options=48<VLAN_MTU,POLLING>
>  >        ether 00:1d:60:6d:73:ec
>  >        inet 192.168.1.11 netmask 0xffffff00 broadcast 192.168.1.255
>  >        media: Ethernet autoselect (100baseTX <full-duplex>)
>  >        status: active
>  > 
>
> How about the following change?
> From /usr/src/sys/dev/mii/athpy.c:
>     288         ssr = PHY_READ(sc, ATPHY_SSR);
>     289         if ((((bmcr & BMCR_AUTOEN) != 0) && ((bmsr & BMSR_ACOMP) == 0)) ||
>     290             (ssr & ATPHY_SSR_SPD_DPLX_RESOLVED) == 0) {
>     291                 /* Erg, still trying, I guess... */
>     292                 mii->mii_media_active |= IFM_NONE;
>     293                 return;
>     294         }
>
> To:
>     288         ssr = PHY_READ(sc, ATPHY_SSR);
>     289         if ((ssr & ATPHY_SSR_SPD_DPLX_RESOLVED) == 0) {
>     290                 /* Erg, still trying, I guess... */
>     291                 mii->mii_media_active |= IFM_NONE;
>     292                 return;
>     293         }
>
> Thanks for your patience and testing.
>   



More information about the freebsd-current mailing list