Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Nov 2004 20:34:48 +0100 (CET)
From:      Sten Spans <sten@blinkenlights.nl>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-alpha@FreeBSD.org
Subject:   Re: alpha and em mtu
Message-ID:  <Pine.SOC.4.61.0411152030030.29165@tea.blinkenlights.nl>
In-Reply-To: <200411151111.11950.jhb@FreeBSD.org>
References:  <Pine.SOC.4.61.0411142153430.26307@tea.blinkenlights.nl> <200411151111.11950.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 15 Nov 2004, John Baldwin wrote:

> On Sunday 14 November 2004 04:26 pm, Sten Spans wrote:
>> I upgraded my ds10 with an intel gigabit card,
>> and encountered the following issue (RELENG_5):
>>
>> deepthought# ifconfig em0 mtu 1501
>> deepthought#
>> fatal kernel trap:
>>
>>      trap entry     = 0x4 (unaligned access fault)
>>      faulting va    = 0xfffffc001847a02e
>>      opcode         = 0x28
>>      register       = 0x1
>>      pc             = 0xfffffc00004cd0f8
>>      ra             = 0xfffffc00004cce24
>>      sp             = 0xfffffe00187a9af0
>>      curthread      = 0xfffffc001f3a70e0
>>          pid = 14, comm = swi1: net
>>
>> [thread 100006]
>> Stopped at      tcp_input+0x368:        srl     t0,#0x2,t0      <t0=0x45>
>> db> trace
>> tcp_input() at tcp_input+0x368
>
> Can you do 'gdb kernel.debug' in your kernel build directory and then do 'l
> *tcp_input+0x368' to determine which source line it is panic'ing at?  This
> might help us figure out what the unaligned access is so it can be fixed.  If
> you don't have a debug kernel, please build one and reproduce the panic to
> get the updated 'tcp_input+0xblah' line and then do the gdb command with the
> updated 'tcp_input+0xblah' bit.  Thanks.

Sure, I anticipated this, but couldn't quite
recall how to do the gdb magics :).

(gdb) l *tcp_input+0x368
0xfffffc00004cd0f8 is in tcp_input (/usr/src/sys/netinet/tcp_input.c:552).
547
548             /*
549              * Check that TCP offset makes sense,
550              * pull out TCP options and adjust length.              XXX
551              */
552             off = th->th_off << 2;
553             if (off < sizeof (struct tcphdr) || off > tlen) {
554                     tcpstat.tcps_rcvbadoff++;
555                     goto drop;
556             }


The box that talks to the alpha has mtu 9014, this might
help to expose the bug.

-- 
Sten Spans

"There is a crack in everything, that's how the light gets in."
Leonard Cohen - Anthem



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOC.4.61.0411152030030.29165>