From: Nick Warne <nick@linicks.net>
To: linux-kernel@vger.kernel.org
Subject: kswapd0 oops -> debug information
Date: Sat, 27 Nov 2004 13:11:25 +0000 [thread overview]
Message-ID: <200411271311.25997.nick@linicks.net> (raw)
Hi all,
I keep getting this oops so randomly, that 'RIGHT, YOU BUGGER' I have
attempted to supply proper debug info - where I have got is what I learnt
today, so I am a bit stuck after finding the area of code.
ksymoops provides:
>>EIP; c0151239 <__iget+29/4c> <=====
Code; c015120e <init_once+1a/1c>
00000000 <_EIP>:
Code; c015120e <init_once+1a/1c>
0: 76 00 jbe 2 <_EIP+0x2> c0151210 <__iget+0/4c>
Code; c0151210 <__iget+0/4c>
2: 53 push %ebx
Code; c0151211 <__iget+1/4c>
3: 8b 5c 24 08 mov 0x8(%esp,1),%ebx
Code; c0151215 <__iget+5/4c>
7: 8b 43 1c mov 0x1c(%ebx),%eax
Code; c0151218 <__iget+8/4c>
a: 85 c0 test %eax,%eax
Code; c015121a <__iget+a/4c>
c: 74 05 je 13 <_EIP+0x13> c0151221
<__iget+11/4c>
Code; c015121c <__iget+c/4c>
e: ff 43 1c incl 0x1c(%ebx)
Code; c015121f <__iget+f/4c>
11: eb 38 jmp 4b <_EIP+0x4b> c0151259
<__iget+49/4c>
Code; c0151221 <__iget+11/4c>
13: ff 43 1c incl 0x1c(%ebx)
Code; c0151224 <__iget+14/4c>
16: f6 83 1c 01 00 00 0f testb $0xf,0x11c(%ebx)
Code; c015122b <__iget+1b/4c>
1d: 75 26 jne 45 <_EIP+0x45> c0151253
<__iget+43/4c>
Code; c015122d <__iget+1d/4c>
1f: 8d 53 08 lea 0x8(%ebx),%edx
Code; c0151230 <__iget+20/4c>
22: 8b 4a 04 mov 0x4(%edx),%ecx
Code; c0151233 <__iget+23/4c>
25: 8b 43 08 mov 0x8(%ebx),%eax
Code; c0151236 <__iget+26/4c>
28: 89 48 04 mov %ecx,0x4(%eax)
Code; c0151239 <__iget+29/4c> <=====
2b: 89 01 mov %eax,(%ecx) <=====
Code; c015123b <__iget+2b/4c>
2d: a1 6c 9c 30 c0 mov 0xc0309c6c,%eax
Code; c0151240 <__iget+30/4c>
32: 89 50 04 mov %edx,0x4(%eax)
Code; c0151243 <__iget+33/4c>
35: 89 43 08 mov %eax,0x8(%ebx)
Code; c0151246 <__iget+36/4c>
38: c7 42 04 6c 9c 30 c0 movl $0xc0309c6c,0x4(%edx)
Code; c015124d <__iget+3d/4c>
3f: 89 .byte 0x89
I have traced this code to fs/inode.c. Producing assembler of inode.c gives
this (snipped):
__iget:
pushl %ebx
movl 8(%esp),%ebx
movl 28(%ebx),%eax
testl %eax,%eax
je .L3337
#APP
incl 28(%ebx)
#NO_APP
jmp .L3336
.p2align 4,,7
.L3337:
#APP
incl 28(%ebx)
#NO_APP
testb $15,284(%ebx)
jne .L3340
leal 8(%ebx),%edx
movl 4(%edx),%ecx
movl 8(%ebx),%eax
movl %ecx,4(%eax)
movl %eax,(%ecx) <===== >>EIP; c0151239 <__iget+29/4c>
movl inode_in_use,%eax
movl %edx,4(%eax)
movl %eax,8(%ebx)
movl $inode_in_use,4(%edx)
movl %edx,inode_in_use
.L3340:
Which quiet nicely matches the ksymoops output. My books tell me the inode.s
file _should_ give me line numbers in inode.c so I can then locate area of
code - but I can't see how to match the produced assembler to the C source.
Hope this helps someone - and if you know who to get assembler code to match C
code via line numbers, I would like to know please.
TIA,
Nick
--
"When you're chewing on life's gristle,
Don't grumble, Give a whistle..."
next reply other threads:[~2004-11-27 13:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-27 13:11 Nick Warne [this message]
2004-11-27 17:01 ` kswapd0 oops -> debug information Randy.Dunlap
2004-11-27 17:21 ` Nick Warne
2005-01-02 7:41 ` Herbert Poetzl
2005-01-02 11:01 ` Nick Warne
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=200411271311.25997.nick@linicks.net \
--to=nick@linicks.net \
--cc=linux-kernel@vger.kernel.org \
/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