tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Potential re(4) / netbsd-4 / i386 problem?




On 3/5/2010 12:18 PM, Izumi Tsutsui wrote:
I've been seeing panics on a netbsd-4/i386 machine which appears to be
related to the reception of oversized frames:

re0: discarding oversize frame (len=8813)
  :
Can anyone help me?

- options DIAGNOSTIC might help debug

Had a kernel running with options DIAGNOSTIC and while I didn't see any printout other than those I saw before, I was able to get a kgdb session up and I have a back trace. Printed out a few bits
and pieces, not sure what would be of real interest:

Program received signal SIGSEGV, Segmentation fault.
0xc05dba53 in ether_input (ifp=0xc21f503c, m=0xc24a4800) at ../../../../net/if_ethersubr.c:648
648             etype = ntohs(eh->ether_type);
(gdb) bt
#0 0xc05dba53 in ether_input (ifp=0xc21f503c, m=0xc24a4800) at ../../../../net/if_ethersubr.c:648 #1 0xc0382d93 in re_rxeof (sc=0xc21f5000) at ../../../../dev/ic/rtl8169.c:1374 #2 0xc03832a2 in re_intr (arg=0xc21f5000) at ../../../../dev/ic/rtl8169.c:1565 #3 0xc062a5d5 in intr_biglock_wrapper (vp=0xc21aef80) at ../../../../arch/x86/x86/intr.c:544
#4  0xc0108198 in Xintr_ioapic_level11 ()
#5  0xc21aef80 in ?? ()
#6  0x00000000 in ?? ()
(gdb) p eh
$1 = (struct ether_header *) 0x58a07f87
(gdb) p m
$2 = (struct mbuf *) 0xc24a4800
(gdb) p *eh
Cannot access memory at address 0x58a07f87
(gdb) p *m
$3 = {m_hdr = {mh_next = 0x388a43eb, mh_nextpkt = 0x3bd2a781,
mh_data = 0x58a07f87 <Address 0x58a07f87 out of bounds>, mh_owner = 0x8e878f3c, mh_len = 1082, mh_flags = -187037215, mh_paddr = 515969279, mh_type = 27862}, M_dat = {MH = {MH_pkthdr = { rcvif = 0xc21f503c, tags = {slh_first = 0xaf76}, len = 1082, csum_flags = 197,
        csum_data = 2687232, segsz = 419436127}, MH_dat = {MH_ext = {
ext_buf = 0x1d010ad0 <Address 0x1d010ad0 out of bounds>, ext_free = 0x450008, ext_arg = 0x84912800, ext_size = 104857600, ext_type = 0xa8c03063, ext_nextref = 0xa8c00102, ext_prevref = 0x657dca02, ext_un = {extun_paddr = 1729288689, extun_pgs = {0x6712d9f1, 0x9d4a3f62, 0x1050e731, 0xeae401b, 0x0, 0x0, 0xd0dcbbd0, 0x5b2500f, 0x0, 0x290100, 0x1900165f, 0x80010ad0, 0x450008, 0x7dc2a005, 0x6400000, 0xa8c0b12c, 0xa8c00f02}},
          ext_ofile = 0x667dca02 <Address 0x667dca02 out of bounds>,
ext_nfile = 0xd00e21ff <Address 0xd00e21ff out of bounds>, ext_oline = 2029390742,
          ext_nline = 407935915},
MH_databuf = "Ð\n\001\035\b\000E\000\000(\221\204\000\000@\006c0À¨\002\001À¨\002Ê}eñÙ\022gb?J\2351
çP\020\033@®\016\000\000\000\000\000\000\000\000лÜÐ\017P²\005\000\000\000\000\000\001)\000_\026\000\031Ð\
n\001\200\b\000E\000\005 
Â}\000\000@\006,±À¨\002\017À¨\002Ê}fÿ!\016Ð\226\vöx«\233P\030\024@ÕÏ\000\000<3--+
,.+,*')\001\017\017\020\020\020\020\021\017\020\020\020\020\020\017\017\017\021\020\020\020\017\017\020\02
0\017\020\020\021\017\f\020\020\020\020\020\017\017\017\020\021\017\017\022\031'=Rbmty\177|~}\200\202\200\
177\177\201~}~\201\201\201\203\205"}},
M_databuf = "<P\037Âv¯\000\000:\004\000\000Å\000\000\000\000\001)\000_\026\000\031Ð\n\001\035\b\000E\0
00\000(\221\204\000\000@\006c0À¨\002\001À¨\002Ê}eñÙ\022gb?J\2351çP\020\033@®\016\000\000\000\000\000\000\0
00\000лÜÐ\017P²\005\000\000\000\000\000\001)\000_\026\000\031Ð\n\001\200\b\000E\000\005 Â}\000\000@\006,± À¨\002\017À¨\002Ê}fÿ!\016Ð\226\vöx«\233P\030\024@ÕÏ\000\000<3--+,.+,*')\001\017\017\020\020\020\020\021\01 7\020\020\020\020\020\017\017\017\021\020\020\020\017\017\020\020\017\020\020\021\017\f\020\020\020\020\02 0\017\017\017\020\021\017\017\022\031'"...}}
(gdb) up
#1 0xc0382d93 in re_rxeof (sc=0xc21f5000) at ../../../../dev/ic/rtl8169.c:1374
1374                    (*ifp->if_input)(ifp, m);
(gdb) p ifp
$4 = (struct ifnet *) 0xc21f503c
(gdb) p *ifp
$5 = {if_softc = 0xc21f5000, if_list = {tqe_next = 0xc2253400, tqe_prev = 0xc0c98f80}, if_addrlist = { tqh_first = 0xc21dfe80, tqh_last = 0xc22dbb10}, if_xname = "re0", '\0' <repeats 12 times>, if_pcount = 0, if_bpf = 0x0, if_index = 1, if_timer = 0, if_flags = -30653, if__pad1 = 0, if_data = { ifi_type = 6 '\006', ifi_addrlen = 6 '\006', ifi_hdrlen = 14 '\016', ifi_link_state = 2, ifi_mtu = 1500, ifi_metric = 0, ifi_baudrate = 1000000000, ifi_ipackets = 13724322, ifi_ierrors = 5, ifi_opackets = 4730575, ifi_oerrors = 0, ifi_collisions = 0, ifi_ibytes = 11913686395, ifi_obytes = 256544336, ifi_imcasts = 12006, ifi_omcasts = 5, ifi_iqdrops = 0, ifi_noproto = 0, ifi_lastchange = {tv_sec = 0, tv_usec = 0}}, if_output = 0xc05db01c <ether_output>,
  if_input = 0xc05dba19 <ether_input>, if_start = 0xc0383326 <re_start>,
if_ioctl = 0xc0384654 <re_ioctl>, if_init = 0xc0383ca1 <re_init>, if_stop = 0xc03847e6 <re_stop>, if_watchdog = 0xc0384774 <re_watchdog>, if_drain = 0, if_snd = {ifq_head = 0x0, ifq_tail = 0x0, ifq_len = 0, ifq_maxlen = 512, ifq_drops = 0, altq_type = 0, altq_flags = 1, altq_disc = 0x0, altq_ifp = 0xc21f503c, altq_enqueue = 0, altq_dequeue = 0, altq_request = 0, altq_clfier = 0x0, altq_classify = 0, altq_tbr = 0x0, altq_cdnr = 0x0}, if_sadl = 0xc21dfec4, if_broadcastaddr = 0xc0a1e820 "ÿÿÿÿÿÿ\001\200Â", if_bridge = 0x0, if_dlt = 1, if_pfil = {ph_in = { tqh_first = 0x0, tqh_last = 0xc21f5160}, ph_out = {tqh_first = 0x0, tqh_last = 0xc21f5168}, ph_ifaddr = {tqh_first = 0x0, tqh_last = 0xc21f5170}, ph_ifnetevent = {tqh_first = 0x0, tqh_last = 0xc21f5178}, ph_type = 2, ph_un = {phu_val = 3256832060, phu_ptr = 0xc21f503c}, ph_list = {le_next = 0x0, le_prev = 0xc225354c}}, if_capabilities = 16128, if_capenable = 0, if_carp_ptr = {carp_s = 0x0, carp_d = 0x0}, if_csum_flags_tx = 0, if_csum_flags_rx = 0, if_afdata = { 0x0 <repeats 24 times>, 0xc1ead9c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, if_mowner = 0x0,
  if_agrprivate = 0x0}
(gdb) p i
$6 = 38
(gdb)


Brad



Home | Main Index | Thread Index | Old Index