public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven.eckelmann@gmx.de>
To: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@open-mesh.net>
Subject: Re: [B.A.T.M.A.N.] Batman gateway lock ups
Date: Mon, 8 Sep 2008 23:18:42 +0200	[thread overview]
Message-ID: <200809082318.54082.sven.eckelmann@gmx.de> (raw)
In-Reply-To: <5635aa0d0809050801k1c5f0bd5wa366574efedd910f@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2135 bytes --]

Ok, I got the /proc/modules file now. Current situation is following: it 
crashes inside the the batman module add position 0x00000aa4

    a60:	3c020000 	lui	v0,0x0
     a64:	8c500024 	lw	s0,36(v0)
     a68:	24420024 	addiu	v0,v0,36
     a6c:	12020014 	beq	s0,v0,ac0 <cleanup_module+0x610>
     a70:	3c040000 	lui	a0,0x0
     a74:	3c050000 	lui	a1,0x0
     a78:	3c020000 	lui	v0,0x0
     a7c:	24840000 	addiu	a0,a0,0
     a80:	24a50088 	addiu	a1,a1,136
     a84:	24420000 	addiu	v0,v0,0
     a88:	0040f809 	jalr	v0
     a8c:	24060283 	li	a2,643
     a90:	8e040004 	lw	a0,4(s0)
     a94:	8e030000 	lw	v1,0(s0)
     a98:	3c020010 	lui	v0,0x10
     a9c:	34420100 	ori	v0,v0,0x100
     aa0:	8e110008 	lw	s1,8(s0)
     aa4:	ac830000 	sw	v1,0(a0)
     aa8:	ae020000 	sw	v0,0(s0)
     aac:	3c020020 	lui	v0,0x20
     ab0:	34420200 	ori	v0,v0,0x200
     ab4:	ac640004 	sw	a0,4(v1)

This is part of the compiled version of packet_recv_thread. Due the 
optimizations done I cannot say were exactly the problem lies.

I think the code of get_ip_addr() got inlined in packet_recv_thread and we 
need to search for the crash inside of it at list_del(&entry->list);
I would also say that the really crash is inside __list_del where prev and 
next will be set. To check it, look at LIST_POISON1 and LIST_POISON1 inside of 
poison.h of the current linux kernel. You will notice that the values are 
0x00100100 and 0x00200200 == address of the failed paging request. The list 
poison stuff will be done in in list_del after calling __list_del (it is the 
sequence lui, ori, sw in the asm snipped). So could it be that we have a 
poisened entry inside the list?
This could for example happen when we get scheduled (please notice that the 
optimizer exchanged many instrictions) while another part of the program is 
deleting entries. I haven't checked the rest of the code if that really could 
happen, but that is my current idea.

So for better readability the callstack:
- packet_recv_thread
- get_ip_addr from gateway.c:401
- list_del from gateway.c:645
- __list_del

Best regards
	Sven Eckelmann

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2008-09-08 21:18 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-05 15:01 [B.A.T.M.A.N.] Batman gateway lock ups Outback Dingo
2008-09-08  7:08 ` Sven Eckelmann
2008-09-08 21:18 ` Sven Eckelmann [this message]
2008-09-08 21:45   ` Sven Eckelmann
2008-09-09  8:03     ` Sven Eckelmann
2008-09-09 11:26   ` Simon Wunderlich
2008-09-09 22:45     ` Sven Eckelmann
2008-09-10  9:50       ` Sven Eckelmann
2009-07-21 20:48 ` Simon Wunderlich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200809082318.54082.sven.eckelmann@gmx.de \
    --to=sven.eckelmann@gmx.de \
    --cc=b.a.t.m.a.n@open-mesh.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox