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>