alpha and em mtu
Sten Spans
sten at blinkenlights.nl
Sun Nov 21 12:35:03 GMT 2004
On Fri, 19 Nov 2004, John Baldwin wrote:
> On Friday 19 November 2004 04:32 am, Sten Spans wrote:
>> On Mon, 15 Nov 2004, Sten Spans wrote:
>>> On Mon, 15 Nov 2004, John Baldwin wrote:
>>>> On Monday 15 November 2004 04:07 pm, Sten Spans wrote:
>>>>> On Mon, 15 Nov 2004, John Baldwin wrote:
>>>>>
>>>>> changed to ((off0 & 0x3) != 0), didn't seem to print anything.
>>>>
>>>> Ok, try this one then instead:
>>>>
>>>> Index: netinet/tcp_input.c
>>>> ===================================================================
>>>> RCS file: /usr/cvs/src/sys/netinet/tcp_input.c,v
>>>> retrieving revision 1.255
>>>> diff -u -r1.255 tcp_input.c
>>>> --- netinet/tcp_input.c 7 Nov 2004 19:19:35 -0000 1.255
>>>> +++ netinet/tcp_input.c 15 Nov 2004 21:19:50 -0000
>>>> @@ -504,6 +504,8 @@
>>>> }
>>>> }
>>>> ip = mtod(m, struct ip *);
>>>> + if (((uintptr_t)ip & 0x3) != 0)
>>>> + printf("%s: ip %p is misaligned\n", __func__, ip);
>>>> ipov = (struct ipovly *)ip;
>>>> th = (struct tcphdr *)((caddr_t)ip + off0);
>>>> tlen = ip->ip_len;
>>>
>>> This does print something:
>>> deepthought# ifconfig em0 mtu 1501
>>> deepthought# tcp_input: ip 0xfffffc001817f00e is misaligned
>>>
>>> fatal kernel trap:
>>>
>>> trap entry = 0x4 (unaligned access fault)
>>> faulting va = 0xfffffc001817f02e
>>> opcode = 0x28
>>> register = 0x1
>>> pc = 0xfffffc00004cd134
>>> ra = 0xfffffc00004ccf94
>>> sp = 0xfffffe00187a9af0
>>> curthread = 0xfffffc001f3a70e0
>>> pid = 14, comm = swi1: net
>>>
>>> [thread 100006]
>>> Stopped at tcp_input+0x3a4: srl t0,#0x2,t0 <t0=0x45>
>>>
>>>
>>> The ip's used are 192.168.1.3 and 192.168.1.4.
>>
>> Any luck or should I turn this into a pr ?
>
> Sorry, been busy recently. A PR certainly wouldn't hurt.
Ok, I'll get that going.
> Does this panic go
> away if you use a different MTU btw?
I've tried running
i=1; while true; echo $i; ifconfig em0 mtu $i; let i++; sleep 2;
and on the client:
while true; do echo bla | telnet alpha 22; sleep 1; done
this caused no crashes with mtu 1-1500.
But:
deepthought# ifconfig em0 mtu 1666
deepthought# tcp_input: ip 0xfffffc0018cdb00e is misaligned
deepthought# ifconfig em0 mtu 1564
deepthought# tcp_input: ip 0xfffffc001857c80e is misaligned
deepthought# ifconfig em0 mtu 1532
deepthought# tcp_input: ip 0xfffffc001859300e is misaligned
If it has to be 8 bytes aligned then it's off by 4, doesn't
seem to be vlanmtu though.
--
Sten Spans
"There is a crack in everything, that's how the light gets in."
Leonard Cohen - Anthem
More information about the freebsd-alpha
mailing list