Date: Fri, 7 Jun 2013 10:03:13 +0900 From: YongHyeon PYUN <pyunyh@gmail.com> To: Daniel Braniss <danny@cs.huji.ac.il> Cc: freebsd-stable@freebsd.org, John Baldwin <jhb@freebsd.org> Subject: Re: SunFire X2200 ilo's bge1 DOWN/UP Message-ID: <20130607010313.GB3347@michelle.cdnetworks.com> In-Reply-To: <E1UjOCz-0006oU-DS@kabab.cs.huji.ac.il> References: <E1UgsL2-000DBa-El@kabab.cs.huji.ac.il> <20130529085544.GC3042@michelle.cdnetworks.com> <E1UhwbD-000Ea3-SL@kabab.cs.huji.ac.il> <201305300859.20928.jhb@freebsd.org> <E1UiHpX-000AaB-38@kabab.cs.huji.ac.il> <20130531054713.GB1478@michelle.cdnetworks.com> <E1UjOCz-0006oU-DS@kabab.cs.huji.ac.il>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 03, 2013 at 09:25:33AM +0300, Daniel Braniss wrote: > > On Fri, May 31, 2013 at 08:24:47AM +0300, Daniel Braniss wrote: > > > > On Thursday, May 30, 2013 2:44:35 am Daniel Braniss wrote: > > > > > > --/04w6evG8XlLl3ft > > > > > > Content-Type: text/x-diff; charset=us-ascii > > > > > > Content-Disposition: attachment; filename="bge.media_sts.diff" > > > > > > > > > > > > Index: sys/dev/bge/if_bge.c > > > > > > =================================================================== > > > > > > --- sys/dev/bge/if_bge.c (revision 251021) > > > > > > +++ sys/dev/bge/if_bge.c (working copy) > > > > > > @@ -5583,6 +5583,10 @@ bge_ifmedia_sts(struct ifnet *ifp, struct ifmediar > > > > > > > > > > > > BGE_LOCK(sc); > > > > > > > > > > > > + if ((ifp->if_flags & IFF_UP) == 0) { > > > > > > + BGE_UNLOCK(sc); > > > > > > + return; > > > > > > + } > > > > > > if (sc->bge_flags & BGE_FLAG_TBI) { > > > > > > ifmr->ifm_status = IFM_AVALID; > > > > > > ifmr->ifm_active = IFM_ETHER; > > > > > > > > > > > > --/04w6evG8XlLl3ft-- > > > > > after 18hs, the logs are empty! > > > > > it seems the patch fixes the problem. > > > > > > > > > > now maybe it's time to hunt for who is randomly calling for bge_ifmedia_sts > > > > > ... > > > > > > > > It could be any number of daemons that query interface state such as an > > > > SNMP server, ladvd, etc. > > > > > > > > If you wanted help you could modify the patch so that it does something like > > > > this: > > > > > > > #include <sys/proc.h> > > > > if (/* test for IFF_UP */) { > > > > BGE_UNLOCK(sc); > > > > if_printf(ifp, "state queried on down interface by pid %d (%s)", > > > ------------------------------------------------------------------------------| > > > add a \n > > > > curthread->td_proc->p_pid, curthread->td_proc->p_comm); > > > > return; > > > > } > > > > > > > > -- > > > > John Baldwin > > > snmpd call this several times a second, (difficult to measeure since sysolog > > > just says > > > last message repeated 22 times > > > in any case, the DOWN/UP appears once every few hours, oh well. > > > I have now stopped the snmpd daemon, maybe there is someone else ... > > > > I have no idea why snmpd wants to know media status for interfaces > > that are put into down state. The media status resolved after > > bringing up the interface may be different one that was seen > > before. > > The patch also makes dhclient think driver got a valid link > > regardless of link establishment. I guess that wouldn't be > > issue though. I'll commit the patch after some more testing. > > > > Thanks for reporting and testing! > > > no problem! > > after more than 3 days, there were no more 'reports', so snmpd was the culprit. > the snmpd we use is from ports, i'll try and see waht's going on ... > FYI: Committed in r251481.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130607010313.GB3347>