From owner-freebsd-stable@FreeBSD.ORG Thu May 30 13:11:14 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 09515E9 for ; Thu, 30 May 2013 13:11:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) by mx1.freebsd.org (Postfix) with ESMTP id DBBE1F48 for ; Thu, 30 May 2013 13:11:13 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 42358B949; Thu, 30 May 2013 09:11:13 -0400 (EDT) From: John Baldwin To: freebsd-stable@freebsd.org Subject: Re: SunFire X2200 ilo's bge1 DOWN/UP Date: Thu, 30 May 2013 08:59:20 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p25; KDE/4.5.5; amd64; ; ) References: <20130529085544.GC3042@michelle.cdnetworks.com> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201305300859.20928.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 30 May 2013 09:11:13 -0400 (EDT) Cc: pyunyh@gmail.com X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 May 2013 13:11:14 -0000 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: if (/* test for IFF_UP */) { BGE_UNLOCK(sc); if_printf(ifp, "state queried on down interface by pid %d (%s)", curthread->td_proc->p_pid, curthread->td_proc->p_comm); return; } -- John Baldwin