Date: Tue, 17 Feb 2009 23:05:57 +0100 From: "Alexey Shuvaev" <shuvaev@physik.uni-wuerzburg.de> To: Pyun YongHyeon <pyunyh@gmail.com> Cc: Garrett Cooper <yanefbsd@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: Annoyance with recent parallelism in rc.d Message-ID: <20090217220557.GA1745@wep4035.physik.uni-wuerzburg.de> In-Reply-To: <20090217011358.GC23900@michelle.cdnetworks.co.kr> References: <7d6fde3d0902150028n5f07ee55mc6026e1e4935eeb0@mail.gmail.com> <20090217011358.GC23900@michelle.cdnetworks.co.kr>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 17, 2009 at 10:13:58AM +0900, Pyun YongHyeon wrote: > Would you try attached patch? I don't like the patch but it may > reduce number of link state change message generated by dhclient. > Seems to be so. Not sure it solves the problem entirely: [snip] /dev/ad6p8: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad6p8: clean, 5999509 free (41045 frags, 744808 blocks, 0.5% fragmentation) msk0: link state changed to DOWN Starting Network: lo0 msk0. Removing stale Samba tdb files: done Feb 17 21:49:22 ntpd[1295]: getaddrinfo: "wrzx03.rz.uni-wuerzburg.de" invalid h ost address, ignored Feb 17 21:49:22 ntpd[1295]: getaddrinfo: "wep4001.physik.uni-wuerzburg.de" inva lid host address, ignored Configuring syscons: blanktime screensaver. Configuring jails:. Starting jails:. moused: unable to open /dev/ums0: Device busy Tue Feb 17 21:49:23 CET 2009 FreeBSD/amd64 (wep4035) (ttyv0) login: After all I have ntpd running & connected to upstream ntp server. This is without synchronous_dhclient="YES" in rc.conf. I have some feeling that the problem is not localized to msk driver only, so... if you don't like the patch I'm ok to live with synchronous dhclient. Alexey. > Index: sys/dev/msk/if_msk.c > =================================================================== > --- sys/dev/msk/if_msk.c (revision 188700) > +++ sys/dev/msk/if_msk.c (working copy) > @@ -943,8 +943,11 @@ > else { > MSK_IF_LOCK(sc_if); > ifp->if_mtu = ifr->ifr_mtu; > - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) > + if ((ifp->if_drv_flags & > + IFF_DRV_RUNNING) != 0) { > + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; > msk_init_locked(sc_if); > + } > MSK_IF_UNLOCK(sc_if); > } > } > @@ -2726,6 +2729,7 @@ > if_printf(sc_if->msk_ifp, "watchdog timeout " > "(missed link)\n"); > ifp->if_oerrors++; > + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; > msk_init_locked(sc_if); > return; > } > @@ -2750,6 +2754,7 @@ > > if_printf(ifp, "watchdog timeout\n"); > ifp->if_oerrors++; > + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; > msk_init_locked(sc_if); > if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) > taskqueue_enqueue(taskqueue_fast, &sc_if->msk_tx_task); > @@ -2828,8 +2833,10 @@ > mskc_reset(sc); > for (i = 0; i < sc->msk_num_port; i++) { > if (sc->msk_if[i] != NULL && sc->msk_if[i]->msk_ifp != NULL && > - ((sc->msk_if[i]->msk_ifp->if_flags & IFF_UP) != 0)) > + ((sc->msk_if[i]->msk_ifp->if_flags & IFF_UP) != 0)) { > + sc->msk_if[i]->msk_ifp->if_drv_flags &= ~IFF_DRV_RUNNING; > msk_init_locked(sc->msk_if[i]); > + } > } > sc->msk_suspended = 0; > > @@ -3515,6 +3522,9 @@ > sc = sc_if->msk_softc; > mii = device_get_softc(sc_if->msk_miibus); > > + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) > + return; > + > error = 0; > /* Cancel pending I/O and free all Rx/Tx buffers. */ > msk_stop(sc_if);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090217220557.GA1745>