Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Sep 2011 10:31:05 -0700
From:      "Vogel, Jack" <jack.vogel@intel.com>
To:        Jeremy Chadwick <freebsd@jdc.parodius.com>, David G Lawrence <dg@dglawrence.com>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>, John Baldwin <jhb@freebsd.org>, Craig Leres <leres@ee.lbl.gov>
Subject:   RE: Panic during kernel booting on HP Proliant DL180G6 and latest STABLE
Message-ID:  <1DB50624F8348F48840F2E2CF6040A9D01986290C5@orsmsx508.amr.corp.intel.com>
In-Reply-To: <20110922102732.GA60730@icarus.home.lan>
References:  <4E7AAAF6.7050004@ee.lbl.gov> <20110922101156.GA11465@black.dglawrence.com> <20110922102732.GA60730@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
--_002_1DB50624F8348F48840F2E2CF6040A9D01986290C5orsmsx508amrc_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

-----Original Message-----
From: Jeremy Chadwick [mailto:freebsd@jdc.parodius.com]=20
Sent: Thursday, September 22, 2011 3:28 AM
To: David G Lawrence
Cc: Craig Leres; freebsd-stable@freebsd.org; John Baldwin; Vogel, Jack
Subject: Re: Panic during kernel booting on HP Proliant DL180G6 and latest =
STABLE

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 (a=
s
> > 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.
> >=20
> > While working on this today, I saw two different kernel panics:
> >=20
> >     Could not setup receive structures
> >     m_getzone: m_getjcl: invalid cluster type
>=20
>    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.
>=20
> -DG
>=20
> Dr. David G. Lawrence
> President
> Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 850=
0
> Pave the road of life with opportunities.
>=20
> Index: if_igb.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> 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);
>  =20
> - 	ifp->if_drv_flags |=3D IFF_DRV_RUNNING;
> - 	ifp->if_drv_flags &=3D ~IFF_DRV_OACTIVE;
> -=20
>   	callout_reset(&adapter->timer, hz, igb_local_timer, adapter);
>   	e1000_clear_hw_cntrs_base_generic(&adapter->hw);
>  =20
> --- 1278,1283 ----
> ***************
> *** 1308,1313 ****
> --- 1305,1313 ----
>  =20
>   	/* Don't reset the phy next time init gets called */
>   	adapter->hw.phy.reset_disable =3D TRUE;
> +=20
> + 	ifp->if_drv_flags |=3D IFF_DRV_RUNNING;
> + 	ifp->if_drv_flags &=3D ~IFF_DRV_OACTIVE;
>   }
>  =20
>   static void
> ***************
> *** 1490,1501 ****
>   	E1000_WRITE_REG(&adapter->hw, E1000_EIMC, que->eims);
>   	++que->irqs;
>  =20
>   	IGB_TX_LOCK(txr);
>   	more_tx =3D igb_txeof(txr);
>   	IGB_TX_UNLOCK(txr);
>  =20
> - 	more_rx =3D igb_rxeof(que, adapter->rx_process_limit, NULL);
> -=20
>   	if (igb_enable_aim =3D=3D FALSE)
>   		goto no_calc;
>   	/*
> --- 1490,1505 ----
>   	E1000_WRITE_REG(&adapter->hw, E1000_EIMC, que->eims);
>   	++que->irqs;
>  =20
> + 	if (!(adapter->ifp->if_drv_flags & IFF_DRV_RUNNING)) {
> + 		return;
> + 	}
> +=20
> + 	more_rx =3D igb_rxeof(que, adapter->rx_process_limit, NULL);
> +=20
>   	IGB_TX_LOCK(txr);
>   	more_tx =3D igb_txeof(txr);
>   	IGB_TX_UNLOCK(txr);
>  =20
>   	if (igb_enable_aim =3D=3D 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.



I have a slight modification to John's earlier changes, namely, it masks th=
e full EIMC register when setup to use MSIX, I'm thinking this might be why=
 the earlier patch failed?  The code in this latest email is something that=
 I would not want to use if possible, it's just trying to avoid the problem=
.  Please test with this change instead.

Regards,

Jack


--_002_1DB50624F8348F48840F2E2CF6040A9D01986290C5orsmsx508amrc_
Content-Type: application/octet-stream; name="igb-irq.patch"
Content-Description: igb-irq.patch
Content-Disposition: attachment; filename="igb-irq.patch"; size=1791;
	creation-date="Thu, 22 Sep 2011 10:22:56 GMT";
	modification-date="Thu, 22 Sep 2011 10:22:56 GMT"
Content-Transfer-Encoding: base64

LS0tIGlmX2lnYi5jCTIwMTEtMDQtMjggMDg6Mjg6NTkuMDAwMDAwMDAwIC0wNzAwCisrKyBpZl9p
Z2IuamZ2LmMJMjAxMS0wOS0yMiAwMTo1ODo0OS4wMDAwMDAwMDAgLTA3MDAKQEAgLTk5LDcgKzk5
LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICAqICBEcml2ZXIgdmVyc2lvbjoKICAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
Ci1jaGFyIGlnYl9kcml2ZXJfdmVyc2lvbltdID0gInZlcnNpb24gLSAyLjIuMyI7CitjaGFyIGln
Yl9kcml2ZXJfdmVyc2lvbltdID0gInZlcnNpb24gLSAyLjIuMyAtIHRlc3QiOwogCiAKIC8qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKQEAgLTU5OCwxNiArNTk4LDYgQEAKIAkJZ290byBlcnJfbGF0ZTsKIAl9CiAKLQkv
KiAKLQkqKiBDb25maWd1cmUgSW50ZXJydXB0cwotCSovCi0JaWYgKChhZGFwdGVyLT5tc2l4ID4g
MSkgJiYgKGlnYl9lbmFibGVfbXNpeCkpCi0JCWVycm9yID0gaWdiX2FsbG9jYXRlX21zaXgoYWRh
cHRlcik7Ci0JZWxzZSAvKiBNU0kgb3IgTGVnYWN5ICovCi0JCWVycm9yID0gaWdiX2FsbG9jYXRl
X2xlZ2FjeShhZGFwdGVyKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gZXJyX2xhdGU7Ci0KIAkvKiBT
ZXR1cCBPUyBzcGVjaWZpYyBuZXR3b3JrIGludGVyZmFjZSAqLwogCWlmIChpZ2Jfc2V0dXBfaW50
ZXJmYWNlKGRldiwgYWRhcHRlcikgIT0gMCkKIAkJZ290byBlcnJfbGF0ZTsKQEAgLTY1MSw2ICs2
NDEsMTYgQEAKIAlhZGFwdGVyLT5sZWRfZGV2ID0gbGVkX2NyZWF0ZShpZ2JfbGVkX2Z1bmMsIGFk
YXB0ZXIsCiAJICAgIGRldmljZV9nZXRfbmFtZXVuaXQoZGV2KSk7CiAKKwkvKiAKKwkqKiBDb25m
aWd1cmUgSW50ZXJydXB0cworCSovCisJaWYgKChhZGFwdGVyLT5tc2l4ID4gMSkgJiYgKGlnYl9l
bmFibGVfbXNpeCkpCisJCWVycm9yID0gaWdiX2FsbG9jYXRlX21zaXgoYWRhcHRlcik7CisJZWxz
ZSAvKiBNU0kgb3IgTGVnYWN5ICovCisJCWVycm9yID0gaWdiX2FsbG9jYXRlX2xlZ2FjeShhZGFw
dGVyKTsKKwlpZiAoZXJyb3IpCisJCWdvdG8gZXJyX2xhdGU7CisKIAlJTklUX0RFQlVHT1VUKCJp
Z2JfYXR0YWNoOiBlbmQiKTsKIAogCXJldHVybiAoMCk7CkBAIC02NTksMTAgKzY1OSwxMCBAQAog
CWlnYl9mcmVlX3RyYW5zbWl0X3N0cnVjdHVyZXMoYWRhcHRlcik7CiAJaWdiX2ZyZWVfcmVjZWl2
ZV9zdHJ1Y3R1cmVzKGFkYXB0ZXIpOwogCWlnYl9yZWxlYXNlX2h3X2NvbnRyb2woYWRhcHRlcik7
Ci0JaWYgKGFkYXB0ZXItPmlmcCAhPSBOVUxMKQotCQlpZl9mcmVlKGFkYXB0ZXItPmlmcCk7CiBl
cnJfcGNpOgogCWlnYl9mcmVlX3BjaV9yZXNvdXJjZXMoYWRhcHRlcik7CisJaWYgKGFkYXB0ZXIt
PmlmcCAhPSBOVUxMKQorCQlpZl9mcmVlKGFkYXB0ZXItPmlmcCk7CiAJZnJlZShhZGFwdGVyLT5t
dGEsIE1fREVWQlVGKTsKIAlJR0JfQ09SRV9MT0NLX0RFU1RST1koYWRhcHRlcik7CiAKQEAgLTIx
NjcsNiArMjE2Nyw5IEBACiAJYWRhcHRlci0+bXNpeCA9IGlnYl9zZXR1cF9tc2l4KGFkYXB0ZXIp
OwogCWFkYXB0ZXItPmh3LmJhY2sgPSAmYWRhcHRlci0+b3NkZXA7CiAKKwkvKiBNYWtlIHN1cmUg
bm8gaW50ZXJydXB0cyBjb21lIGluIGVhcmx5ICovCisJaWdiX2Rpc2FibGVfaW50cihhZGFwdGVy
KTsKKwogCXJldHVybiAoMCk7CiB9CiAK

--_002_1DB50624F8348F48840F2E2CF6040A9D01986290C5orsmsx508amrc_--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1DB50624F8348F48840F2E2CF6040A9D01986290C5>