Skip site navigation (1)Skip section navigation (2)
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>