Re: a badblocks command causes kerlnel OOPS

Tim Waugh (tim@cyberelk.demon.co.uk)
Mon, 17 May 1999 19:13:10 +0100 (GMT)


On Mon, 17 May 1999, Petrosyan Sahak wrote:

> I send you the output of the ksymoops command in the attached file.

(I'll include it again here for l-k):

Oops: 0002
CPU: 0
EIP: 0010:[<c0123f2e>]
EFLAGS: 00010213
eax: 20120000 ebx: 00000000 ecx: c008a660 edx: c22fff9c
esi: c008a660 edi: 08048000 ebp: c22ffeb0 esp: c22ffd04
ds: 0018 es: 0018 ss: 0018
Process badblocks (pid: 2047, process nr: 16, stackpage=c22ff000)
Stack: 00000000 c0124579 c008a660 c008a660 c1107720 c01add6b c01245f7 c008a660
c008a660 00000000 c008a660 c012761d c008a660 c5eec660 ffffffea 00000000
00002400 00000008 0804a974 00001000 00000000 c0bea000 00000000 c27cc140
Call Trace: [<c0124579>] [<c01245f7>] [<c012761d>] [<c0128868>] [<c0128a8f>] [<c0128ab4>] [<c0129767>]
[<c0162719>] [<c01193f9>] [<c0119453>] [<c0119520>] [<c0122abd>] [<c0122c76>] [<c0109ac0>]
Code: ff 88 00 88 19 c0 8b 51 34 85 d2 74 18 8b 01 85 c0 74 09 89

>>EIP: c0123f2e <invalidate_buffers+11a/2e8>
Trace: c0124579 <refile_buffer+4d/b8>
Trace: c01245f7 <__brelse+13/54>
Trace: c012761d <block_read+499/4e0>
Trace: c0128868 <search_binary_handler+54/114>
Trace: c0128a8f <do_execve+167/984>
Trace: c0128ab4 <do_execve+18c/984>
Trace: c0129767 <lookup_dentry+15f/1e8>
Trace: c0162719 <ide_wait_cmd+751/79c>
Code: c0123f2e <invalidate_buffers+11a/2e8> 00000000 <_EIP>: <===
Code: c0123f2e <invalidate_buffers+11a/2e8> 0: ff 88 00 88 19 c0 decl 0xc0198800(%eax) <===
Code: c0123f34 <invalidate_buffers+120/2e8> 6: 8b 51 34 movl 0x34(%ecx),%edx
Code: c0123f37 <invalidate_buffers+123/2e8> 9: 85 d2 testl %edx,%edx
Code: c0123f39 <invalidate_buffers+125/2e8> b: 74 18 je c0123f53 <invalidate_buffers+13f/2e8>
Code: c0123f3b <invalidate_buffers+127/2e8> d: 8b 01 movl (%ecx),%eax
Code: c0123f3d <invalidate_buffers+129/2e8> f: 85 c0 testl %eax,%eax
Code: c0123f3f <invalidate_buffers+12b/2e8> 11: 74 09 je c0123f4a <invalidate_buffers+136/2e8>
Code: c0123f41 <invalidate_buffers+12d/2e8> 13: 89 00 movl %eax,(%eax)

It doesn't look right to me -- refile buffer can never call invalidate
buffers. Perhaps you didn't give the right symbol file to ksymoops.

However, the code looks like it comes from remove_from_queues:

nr_buffers_type[bh->b_list]--; <===
remove_from_hash_queue(bh);
remove_from_lru_list(bh);

bh->b_list (in eax) is 0x20120000.

Could you re-run ksymoops, giving it the -m option with the path to the
System.map of the kernel that went wrong? It might be interesting to get
the real stack trace.

Thanks,
Tim.
*/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/