Date: Wed, 10 Jan 2007 15:42:49 -0500 From: Sven Willenberger <sven@dmv.com> To: Bruce Evans <bde@zeta.org.au> Cc: stable@freebsd.org, freebsd-amd64@freebsd.org, John Baldwin <jhb@freebsd.org> Subject: Re: Panic in 6.2-PRERELEASE with bge on amd64 Message-ID: <45A54FC9.8040900@dmv.com> In-Reply-To: <20070110132839.X16378@besplex.bde.org> References: <1168211205.22629.6.camel@lanshark.dmv.com> <20070109124826.M79616@delplex.bde.org> <1168353425.29047.8.camel@lanshark.dmv.com> <200701091150.15274.jhb@freebsd.org> <20070110132839.X16378@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans presumably uttered the following on 01/09/07 21:42: > On Tue, 9 Jan 2007, John Baldwin wrote: > >> On Tuesday 09 January 2007 09:37, Sven Willenberger wrote: >>> On Tue, 2007-01-09 at 12:50 +1100, Bruce Evans wrote: >>>> Oops. I should have asked for the statment in bge_rxeof(). >>> >>> #7 0xffffffff801d5f17 in bge_rxeof (sc=0xffffffff8836b000) >> at /usr/src/sys/dev/bge/if_bge.c:2528 >>> 2528 m->m_pkthdr.len = m->m_len = cur_rx->bge_len - >> ETHER_CRC_LEN; >>> >>> (where m is defined as: >>> 2449 struct mbuf *m = NULL; >>> ) >> >> It's assigned earlier in between those two places. > > Its initialization here is just a style bug. > >> Can you 'p rxidx' as well >> as 'p sc->bge_cdata.bge_rx_std_chain[rxidx]' and 'p >> sc->bge_cdata.bge_rx_jumbo_chain[rxidx]'? Also, are you using jumbo >> frames >> at all? > > Also look at nearby chain entries (especially at (rxidx - 1) mod 512)). > I think the previous 255 entries and the rxidx one should be > non-NULL since we should have refilled them as we used them (so the > one at rxidx is least interesting since we certainly just refilled > it), and the next 256 entries should be NULL since we bogusly only use > half of the entries. If the problem is uninitialization, then I expect > all 512 entries except the one just refilled at rxidx to be NULL. > > Bruce > _______________________________________________ (kgdb) p sc->bge_cdata.bge_rx_std_chain[rxidx] $1 = (struct mbuf *) 0xffffff0097a27900 (kgdb) p rxidx $2 = 499 since rxidx = 499, I assume you are most interested in 498: (kgdb) p sc->bge_cdata.bge_rx_std_chain[498] $3 = (struct mbuf *) 0xffffff00cf1b3100 for the sake of argument, 500 is null: (kgdb) p sc->bge_cdata.bge_rx_std_chain[500] $13 = (struct mbuf *) 0x0 the indexes with values basically are 243 through 499: (kgdb) p sc->bge_cdata.bge_rx_std_chain[241] $30 = (struct mbuf *) 0x0 (kgdb) p sc->bge_cdata.bge_rx_std_chain[242] $31 = (struct mbuf *) 0x0 (kgdb) p sc->bge_cdata.bge_rx_std_chain[243] $32 = (struct mbuf *) 0xffffff005d4ab700 (kgdb) p sc->bge_cdata.bge_rx_std_chain[244] $33 = (struct mbuf *) 0xffffff004f644b00 so it does not seem to be a problem with "uninitialization".
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45A54FC9.8040900>