Re: Apparent fxp regression in FreeBSD 8.4-RC3

2013-05-26 Thread YongHyeon PYUN
On Fri, May 24, 2013 at 04:36:46PM +0900, Hiroki Sato wrote:
 Hiroki Sato h...@freebsd.org wrote
   in 20130524.162926.395058052118975996@allbsd.org:
 
 hr YongHyeon PYUN pyu...@gmail.com wrote
 hr   in 20130524054720.ga1...@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.

 
 -- Hiroki


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Apparent fxp regression in FreeBSD 8.4-RC3

2013-05-26 Thread YongHyeon PYUN
On Fri, May 24, 2013 at 03:32:29AM -0400, Charles Sprickman wrote:
 
 On May 24, 2013, at 1:47 AM, YongHyeon PYUN wrote:
 
  On Thu, May 23, 2013 at 09:49:19PM -0700, Jeremy Chadwick wrote:
  On Thu, May 23, 2013 at 09:40:35PM -0700, Jeremy Chadwick wrote:
  On Thu, May 23, 2013 at 11:42:44PM -0400, Glen Barber wrote:
  On Thu, May 23, 2013 at 08:38:06PM -0700, Jeremy Chadwick wrote:
  If someone wants me to test DHCP via fxp(4) on the above system (I can
  do so with both NICs), just let me know; it should only take me half an
  hour or so.
  
  I'll politely wait for someone to say please do so else won't bother.
  
  
  For the sake of completeness...
  
  Please do so.  :)
  
  Issue reproduced 100% reliably, even within sysinstall.
  
  {snip} 
  
  Forgot to add:
  
  This issue ONLY happens when using DHCP.
  
  Statically assigning the IP address works fine; fxp0 goes down once,
  up once, then stays up indefinitely.
  
  I asked Mike to try backing out dhclient(8) change(r247336) but it
  seems he missed that. Jeremy, could you try that?
 
 I have a system up and running and showing the problem (that was
 non-trival, just for the record - one machine blew the PSU after
 POST, the other refused to boot off an IDE drive, and then required
 two CD-ROM drives before I found a functional one, and it took a
 good half-hour to find what's apparently the last piece of writable
 CD-R media I own).
 
 I am not awesome with svn, but I'll see if I can manually undo
 r247336 and give it a spin.

Download
http://svnweb.freebsd.org/base/stable/8/sbin/dhclient/dhclient.c?r1=231278r2=247336view=patch

And apply the patch with -R.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Apparent fxp regression in FreeBSD 8.4-RC3

2013-05-26 Thread YongHyeon PYUN
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 h...@freebsd.org wrote
in 20130524.162926.395058052118975996@allbsd.org:
  
  hr YongHyeon PYUN pyu...@gmail.com wrote
  hr   in 20130524054720.ga1...@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.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org