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: <Intel(R) PRO/1000 Network Connection 7.2.3> 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: <Intel(R) PRO/1000 Network Connection 7.2.3> 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;
}
}
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"