From owner-freebsd-stable@FreeBSD.ORG Tue Nov 29 20:28:23 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 387D3106566B; Tue, 29 Nov 2011 20:28:23 +0000 (UTC) (envelope-from mandrews@bit0.com) Received: from magnum.bit0.com (magnum.bit0.com [IPv6:2604:e700:b0:1::200]) by mx1.freebsd.org (Postfix) with ESMTP id A6A878FC15; Tue, 29 Nov 2011 20:28:22 +0000 (UTC) Received: from magnum.bit0.com (localhost [127.0.0.1]) by magnum.bit0.com (Postfix) with ESMTP id 1A3AB1691A; Tue, 29 Nov 2011 15:28:22 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=bit0.com; h=message-id :date:from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; s=boogity; bh=5GvasTPTZ BeTy0FfoSrwA1+MoYHArTzfwPOHRV5eqUM=; b=qYnvWQgwkyayViaQBFd0Y1Kaz +iPQKIi7H6XB1Z/tIkELjOP7KBwoktJJ7xaio9ShePl4GRFcALD3JjiVMBwl+AsQ CS2H1qMStnhBR/SgHjJHr7HloNB04jUIk51d/C2EvQtUF7lK8rv7QETbv1kziFki rhLsdLHjcZqKROrT4M= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bit0.com; h=message-id:date :from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; q=dns; s=boogity; b=w4T OKQ+3aHsm5Tw3cXgkmqOi1ZQTdunfSCWBgQrP7zMgHCfoCj2YoVQEeJumBfjsa75 Sqaqw8FEQjfJnLayQ+JGMCc7aXdrLjZx6u3eLKwhh8a8N3EH15+mcq+318/TPMfo X4lLBFoe76IwClDZ2dPc9jxtdCAKinLskgBYs02k= Received: from [IPv6:2001:470:1f11:c3c:230:1bff:febc:8604] (unknown [IPv6:2001:470:1f11:c3c:230:1bff:febc:8604]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by magnum.bit0.com (Postfix) with ESMTPSA id EFF8716911; Tue, 29 Nov 2011 15:28:20 -0500 (EST) Message-ID: <4ED5403F.6050401@bit0.com> Date: Tue, 29 Nov 2011 15:27:43 -0500 From: Mike Andrews User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20110812 Thunderbird/6.0 MIME-Version: 1.0 To: John Baldwin References: <201111291050.30016.jhb@freebsd.org> In-Reply-To: <201111291050.30016.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-stable@freebsd.org, Jack Vogel Subject: Re: Sporadic 9.0-RC2 boot-time panic 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: Tue, 29 Nov 2011 20:28:23 -0000 On 11/29/2011 10:50 AM, John Baldwin wrote: > On Monday, November 28, 2011 5:37:27 pm Mike Andrews wrote: >> *Sometimes* when booting 9.0-RC2 on *some* of my machines, I'll get one of >> the following two panics during multiuser startup, usually while running >> the /usr/local/etc/rc.d scripts. (The instruction pointer is always >> exactly one of these two, and they look fairly related.) If after two or >> three reboots it manages to not panic, the system will run perfectly >> stable. >> >> For some probably-unrelated reason, the dump never finishes in either case. >> >> First panic (note em0 warning before it): >> ----- >> em0: discard frame w/o packet header > This is odd. I see one bug that could possibly trigger this, but not on > x86: This is amd64, which of course depending on what you meant by "not on x86" may or may not be the same thing ;-) This is with RELENG_9_0 sources built yesterday morning (Nov 28). Kernel config's reasonably close to GENERIC with many unused drivers removed. Hardware is Supermicro X8STi-F -- we do have other (older) systems we haven't yet tried upgrading that have slightly different em revs -- maybe I'll try one of those today just to see if it's 82574L specific. em0: port 0xdc00-0xdc1f mem 0xfbce0000-0xfbcfffff,0xfbcdc000-0xfbcdffff irq 16 at device 0.0 on pci1 em0: Using MSIX interrupts with 3 vectors em0: Ethernet address: 00:25:90:xx:xx:xx em1: port 0xec00-0xec1f mem 0xfbde0000-0xfbdfffff,0xfbddc000-0xfbddffff irq 16 at device 0.0 on pci2 em1: Using MSIX interrupts with 3 vectors em1: Ethernet address: 00:25:90:xx:xx:xx em0@pci0:1:0:0: class=0x020000 card=0x10d315d9 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' device = '82574L Gigabit Network Connection' class = network subclass = ethernet bar [10] = type Memory, range 32, base 0xfbce0000, size 131072, enabled bar [18] = type I/O Port, range 32, base 0xdc00, size 32, enabled bar [1c] = type Memory, range 32, base 0xfbcdc000, size 16384, enabled cap 01[c8] = powerspec 2 supports D0 D3 current D0 cap 05[d0] = MSI supports 1 message, 64 bit cap 10[e0] = PCI-Express 1 endpoint max data 128(256) link x1(x1) cap 11[a0] = MSI-X supports 5 messages in map 0x1c enabled ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected em1@pci0:2:0:0: class=0x020000 card=0x10d315d9 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' device = '82574L Gigabit Network Connection' class = network subclass = ethernet bar [10] = type Memory, range 32, base 0xfbde0000, size 131072, enabled bar [18] = type I/O Port, range 32, base 0xec00, size 32, enabled bar [1c] = type Memory, range 32, base 0xfbddc000, size 16384, enabled cap 01[c8] = powerspec 2 supports D0 D3 current D0 cap 05[d0] = MSI supports 1 message, 64 bit cap 10[e0] = PCI-Express 1 endpoint max data 128(256) link x1(x1) cap 11[a0] = MSI-X supports 5 messages in map 0x1c enabled ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected > > Index: if_em.c > =================================================================== > --- if_em.c (revision 228074) > +++ if_em.c (working copy) > @@ -4305,8 +4305,10 @@ em_rxeof(struct rx_ring *rxr, int count, int *done > #ifndef __NO_STRICT_ALIGNMENT > if (adapter->max_frame_size> > (MCLBYTES - ETHER_ALIGN)&& > - em_fixup_rx(rxr) != 0) > - goto skip; > + em_fixup_rx(rxr) != 0) { > + sendmp = NULL; > + goto next_desc; > + } > #endif > if (status& E1000_RXD_STAT_VP) { > sendmp->m_pkthdr.ether_vtag = > @@ -4318,9 +4320,6 @@ em_rxeof(struct rx_ring *rxr, int count, int *done > sendmp->m_pkthdr.flowid = rxr->msix; > sendmp->m_flags |= M_FLOWID; > #endif > -#ifndef __NO_STRICT_ALIGNMENT > -skip: > -#endif > rxr->fmp = rxr->lmp = NULL; > } > next_desc: > @@ -4426,6 +4425,7 @@ em_fixup_rx(struct rx_ring *rxr) > adapter->dropped_pkts++; > m_freem(rxr->fmp); > rxr->fmp = NULL; > + rxr->lmp = NULL; > error = ENOMEM; > } > } > >