Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 May 2013 13:39:23 +0900
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Hiroki Sato <hrs@freebsd.org>
Cc:        jdc@koitsu.org, gjb@freebsd.org, freebsd-stable@freebsd.org, re@freebsd.org
Subject:   Re: Apparent fxp regression in FreeBSD 8.4-RC3
Message-ID:  <20130527043923.GA1480@michelle.cdnetworks.com>
In-Reply-To: <20130526113841.GA1511@michelle.cdnetworks.com>
References:  <20130524044919.GA41292@icarus.home.lan> <20130524054720.GA1496@michelle.cdnetworks.com> <20130524.162926.395058052118975996.hrs@allbsd.org> <20130524.163646.628115045676432731.hrs@allbsd.org> <20130526113841.GA1511@michelle.cdnetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, May 26, 2013 at 08:38:41PM +0900, YongHyeon PYUN wrote:
> On Fri, May 24, 2013 at 04:36:46PM +0900, Hiroki Sato wrote:
> > Hiroki Sato <hrs@FreeBSD.org> wrote
> >   in <20130524.162926.395058052118975996.hrs@allbsd.org>:
> > 
> > hr> YongHyeon PYUN <pyunyh@gmail.com> wrote
> > hr>   in <20130524054720.GA1496@michelle.cdnetworks.com>:
> > hr>
> > hr>  A workaround is specifying the following line in rc.conf:
> > hr>
> > hr>  ifconfig_fxp0="DHCP media 100baseTX mediaopt full-duplex"
> > 
> >  Hmm, I guess this can happen on other NICs when the link negotiation
> >  causes a link-state flap.  Is it true?
> 
> Probably not. AFAIK fxp(4) is the only controller that requires two
> full resets to support flow control. Multicast programming for
> fxp(4) also requires full controller reset so trying to renew its
> existing lease for fxp(4) looks wrong to me.
> 

After reading code again, I think the dhclient change may affect
all controllers that don't have protection against multiple
initialization of upper stack. if_init() of driver is called
whenever an IP address is assigned to an interface. The stack could
be changed to call if_init() only when IFF_DRV_RUNNING flag is not
set but that would break old drivers which may require full
controller reset for multicast filter reprogramming. I also guess
there may be several drivers that do not implement reinitialization
protection in arm/mips.
It seems fxp(4)'s simple protection against unnecessary controller
initialization does not work well due to the limitation of
controller. We may be able to improve fxp(4) case but other
old/buggy drivers should be fixed too.



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