lkml.org 
[lkml]   [1997]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject2.1.37-2.1.41 filesystem crashme still succeeds / fails
Hi,

just installed 2.1.41 and get another oops with the formery posted
crashme (running two processes hitting the same disk at high rate).
Also the uninterruptible sleep problem (see below) is still present.
The good thing about 2.1.41 however is the crashes appear to happen
much more often now:

Oops: 0002
CPU: 0
EIP: 0010:[<c0128a24>]
EFLAGS: 00010282
eax: 00000000 ebx: c2c5b620 ecx: c2c5b620 edx: c2c5b620
esi: c2bad000 edi: 00000001 ebp: 00000400 esp: c733ddec
ds: 0018 es: 0018 ss: 0018
Process crashme (pid: 179, process nr: 31, stackpage=c733d000)
Stack: 00000100 c7330811 00007000 c01275ec 00000000 00000400 00099939 c7330811
00000001 00000400 00099939 00000400 00000128 c0127947 00000811 c0127a4a
00000400 00099939 c733df18 c022a9b4 00099939 00000001 c0141c48 00000811
Call Trace: [<c01275ec>] [<c0127947>] [<c0127a4a>] [<c0141c48>] [<c01422a4>] [<c
0142529>] [<c01408b5>]
[<c010b458>] [<c0110400>] [<c01099c0>] [<c0106000>] [<c01254b2>] [<c01098
da>]
Code: 89 50 3c 89 51 18 eb 06 89 52 3c 89 52 18 89 d1 ff 05 90 56
Kernel panic: VFS: Free block list corrupted

translates into

Using `/System.map' to map addresses to symbols.

>>EIP: c0128a24 <grow_buffers+90/ec>
Trace: c01275ec <refill_freelist+40/36c>
Trace: c0127947 <getblk+2f/36c>
Trace: c0127a4a <getblk+132/36c>
Trace: c0141c48 <ext2_alloc_block+80/19c>
Trace: c01422a4 <block_getblk+160/264>
Trace: c0142529 <ext2_getblk+181/22c>
Trace: c01408b5 <ext2_file_write+1d1/4cc>
Trace: c010b458 <do_IRQ+f0/198>
Trace: c0110400 <smp_apic_timer_interrupt+20/24>
Trace: c01099c0 <ret_from_intr>
Trace: c0106000 <init_task_union>
Trace: c01254b2 <sys_write+116/18c>
Trace: c01098da <system_call+3a/40>

Code: c0128a24 <grow_buffers+90/ec>

disassembly:

0xc01289e8 <grow_buffers+84>: ret
0xc01289e9 <grow_buffers+85>: leal 0x0(%esi),%esi
0xc01289ec <grow_buffers+88>: pushl %ebx
0xc01289ed <grow_buffers+89>: pushl %esi
0xc01289ee <grow_buffers+90>: call 0xc0128368 <create_buffers>
0xc01289f3 <grow_buffers+95>: movl %eax,%ebx
0xc01289f5 <grow_buffers+97>: addl $0x8,%esp
0xc01289f8 <grow_buffers+100>: testl %ebx,%ebx
0xc01289fa <grow_buffers+102>: jne 0xc0128a08 <grow_buffers+116>
0xc01289fc <grow_buffers+104>: pushl $0x0
0xc01289fe <grow_buffers+106>: pushl %esi
0xc01289ff <grow_buffers+107>: call 0xc0121dec <free_pages>
0xc0128a04 <grow_buffers+112>: jmp 0xc01289ba <grow_buffers+38>
0xc0128a06 <grow_buffers+114>: movl %esi,%esi
0xc0128a08 <grow_buffers+116>: movl 0xc01e5670(,%edi,4),%ecx
0xc0128a0f <grow_buffers+123>: movl %ebx,%edx
0xc0128a11 <grow_buffers+125>: leal 0x0(%esi),%esi
0xc0128a14 <grow_buffers+128>: testl %ecx,%ecx
0xc0128a16 <grow_buffers+130>: je 0xc0128a2c <grow_buffers+152>
0xc0128a18 <grow_buffers+132>: movl 0x18(%ecx),%eax
0xc0128a1b <grow_buffers+135>: movl %eax,0x18(%edx)
0xc0128a1e <grow_buffers+138>: movl %ecx,0x3c(%edx)
0xc0128a21 <grow_buffers+141>: movl 0x18(%ecx),%eax
**> 0xc0128a24 <grow_buffers+144>: movl %edx,0x3c(%eax)
0xc0128a27 <grow_buffers+147>: movl %edx,0x18(%ecx)
0xc0128a2a <grow_buffers+150>: jmp 0xc0128a32 <grow_buffers+158>
0xc0128a2c <grow_buffers+152>: movl %edx,0x3c(%edx)
0xc0128a2f <grow_buffers+155>: movl %edx,0x18(%edx)
0xc0128a32 <grow_buffers+158>: movl %edx,%ecx
0xc0128a34 <grow_buffers+160>: incl 0xc01e5690

"fs/buffer.c" line 1392 of 1798:
tmp = bh;
while (1) {
if (insert_point) {
tmp->b_next_free = insert_point->b_next_free;
tmp->b_prev_free = insert_point;
**> insert_point->b_next_free->b_prev_free = tmp;
insert_point->b_next_free = tmp;
} else {
------------------------------------

The problem with uninterupible sleeps is also still present:

(Learned from H.J. Lu how to find out the sleep adress, thanks ,-)

ps -lx
F UID PID PPID PRI NI SIZE RSS WCHAN STAT TTY TIME COMMAND
40 2600 154 153 2 2 884 168 c011cb18 D N ? 0:36 crashme

0xc011caff <__wait_on_page+139>: movl %esp,%eax
0xc011cb01 <__wait_on_page+141>: andl $0xffffe000,%eax
0xc011cb06 <__wait_on_page+146>: movl $0x2,(%eax)
0xc011cb0c <__wait_on_page+152>: movl 0x18(%esi),%eax
0xc011cb0f <__wait_on_page+155>: testb $0x1,%al
0xc011cb11 <__wait_on_page+157>: je 0xc011cb1c <__wait_on_page+168>
0xc011cb13 <__wait_on_page+159>: call 0xc011130c <schedule>
0xc011cb18 <__wait_on_page+164>: jmp 0xc011cad5 <__wait_on_page+97>
0xc011cb1a <__wait_on_page+166>: movl %esi,%esi
0xc011cb1c <__wait_on_page+168>: leal 0xc(%esp,1),%esi
0xc011cb20 <__wait_on_page+172>: pushf
0xc011cb21 <__wait_on_page+173>: popl %ecx

Wolfgang
--
_/ _/ _/ _/ _/_/_/ . Wolfgang Wander HERMES Collaboration
_/ _/ _/ _/ _/ . DESY Hamburg Email: Wolfgang.Wander@desy.de
_/_/_/ _/_/_/ _/ . Notkestr. 85 Tel: +49 40 8998 4638 Fax: -4034
_/_/_/ _/_/_/ _/_/_/ . 22603 Hamburg http://www-hermes.desy.de/wander.html


\
 
 \ /
  Last update: 2005-03-22 13:39    [W:0.075 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site