From owner-freebsd-stable@FreeBSD.ORG Thu Sep 22 10:27:36 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B1631065672 for ; Thu, 22 Sep 2011 10:27:36 +0000 (UTC) (envelope-from jdc@koitsu.dyndns.org) Received: from qmta03.westchester.pa.mail.comcast.net (qmta03.westchester.pa.mail.comcast.net [76.96.62.32]) by mx1.freebsd.org (Postfix) with ESMTP id 25E958FC0A for ; Thu, 22 Sep 2011 10:27:34 +0000 (UTC) Received: from omta23.westchester.pa.mail.comcast.net ([76.96.62.74]) by qmta03.westchester.pa.mail.comcast.net with comcast id blu71h0031c6gX853mTblb; Thu, 22 Sep 2011 10:27:35 +0000 Received: from koitsu.dyndns.org ([67.180.84.87]) by omta23.westchester.pa.mail.comcast.net with comcast id bmTZ1h00G1t3BNj3jmTapR; Thu, 22 Sep 2011 10:27:35 +0000 Received: by icarus.home.lan (Postfix, from userid 1000) id 14B44102C31; Thu, 22 Sep 2011 03:27:32 -0700 (PDT) Date: Thu, 22 Sep 2011 03:27:32 -0700 From: Jeremy Chadwick To: David G Lawrence Message-ID: <20110922102732.GA60730@icarus.home.lan> References: <4E7AAAF6.7050004@ee.lbl.gov> <20110922101156.GA11465@black.dglawrence.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110922101156.GA11465@black.dglawrence.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-stable@freebsd.org, "Vogel, Jack" , John Baldwin , Craig Leres Subject: Re: Panic during kernel booting on HP Proliant DL180G6 and latest STABLE X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 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, 22 Sep 2011 10:27:36 -0000 On Thu, Sep 22, 2011 at 03:11:56AM -0700, David G Lawrence wrote: > > I have a lot of supermicro motherboards and the newest ones have igb > > chipsets; they've been quite a headache with respect to FreeBSD 8. I'm > > running 8.2-RELEASE but have upgraded parts of my kernel to 8-RELENG (as > > of a few months ago). Some of them work ok while others panic on bootup. > > Upgrading to newer versions of the intel igb code fixes some but breaks > > others. It's been frustrating. > > > > While working on this today, I saw two different kernel panics: > > > > Could not setup receive structures > > m_getzone: m_getjcl: invalid cluster type > > I fixed this awhile back in my local sources. A 12 core Supermicro > MB system I'm building here was hitting the bug 100% of the time during > startup. Patch attached. > > -DG > > Dr. David G. Lawrence > President > Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500 > Pave the road of life with opportunities. > > Index: if_igb.c > =================================================================== > RCS file: /home/ncvs/src/sys/dev/e1000/if_igb.c,v > retrieving revision 1.21.2.20 > diff -c -r1.21.2.20 if_igb.c > *** if_igb.c 29 Jun 2011 16:16:59 -0000 1.21.2.20 > --- if_igb.c 22 Sep 2011 10:04:31 -0000 > *************** > *** 1278,1286 **** > /* Don't lose promiscuous settings */ > igb_set_promisc(adapter); > > - ifp->if_drv_flags |= IFF_DRV_RUNNING; > - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; > - > callout_reset(&adapter->timer, hz, igb_local_timer, adapter); > e1000_clear_hw_cntrs_base_generic(&adapter->hw); > > --- 1278,1283 ---- > *************** > *** 1308,1313 **** > --- 1305,1313 ---- > > /* Don't reset the phy next time init gets called */ > adapter->hw.phy.reset_disable = TRUE; > + > + ifp->if_drv_flags |= IFF_DRV_RUNNING; > + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; > } > > static void > *************** > *** 1490,1501 **** > E1000_WRITE_REG(&adapter->hw, E1000_EIMC, que->eims); > ++que->irqs; > > IGB_TX_LOCK(txr); > more_tx = igb_txeof(txr); > IGB_TX_UNLOCK(txr); > > - more_rx = igb_rxeof(que, adapter->rx_process_limit, NULL); > - > if (igb_enable_aim == FALSE) > goto no_calc; > /* > --- 1490,1505 ---- > E1000_WRITE_REG(&adapter->hw, E1000_EIMC, que->eims); > ++que->irqs; > > + if (!(adapter->ifp->if_drv_flags & IFF_DRV_RUNNING)) { > + return; > + } > + > + more_rx = igb_rxeof(que, adapter->rx_process_limit, NULL); > + > IGB_TX_LOCK(txr); > more_tx = igb_txeof(txr); > IGB_TX_UNLOCK(txr); > > if (igb_enable_aim == FALSE) > goto no_calc; > /* CC'ing Jack Vogel. Jack, any insights with regards to this patch? This also touches on what Adrian was mentioning as well, at least to some degree. -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |