[ENBD] fr1 hangs when trying to access raid device..

Arve Emil Myrås enbd@lists.community.tummy.com
Wed, 5 Feb 2003 16:49:34 +0100


>Would you please make sure that the loop in do_fr1_request starts:
>
>     while (!list_empty (&q->queue_head)) {

Yes it is....

>And my personal guess is that it gets a null request. Please uncomment
>the printk(s) in that function. You many uncomment all printk's, in
>fact! That will give some more clues. I'll have a look at the assembler
>to see if I recognize the point.


Ok.. you got the complete results freom write test in the last mail, 
here comes the ksymoops and syslog from a test on reading from md0 with dd .. (still with the " fr1_gendisk.major = major;" added)

Feb  5 16:41:03 vserv kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000010
Feb  5 16:41:03 vserv kernel: fad24d76
Feb  5 16:41:03 vserv kernel: *pde = 00000000
Feb  5 16:41:03 vserv kernel: Oops: 0000
Feb  5 16:41:03 vserv kernel: CPU:    0
Feb  5 16:41:03 vserv kernel: EIP:    0010:[<fad24d76>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
Feb  5 16:41:03 vserv kernel: EFLAGS: 00010046
Feb  5 16:41:03 vserv kernel: eax: 00000000   ebx: 00000000   ecx: f4fac000   edx: f5da9f7c
Feb  5 16:41:03 vserv kernel: esi: f4faded0   edi: c02e8b2c   ebp: f4fadeb8   esp: f4fade90
Feb  5 16:41:03 vserv kernel: ds: 0018   es: 0018   ss: 0018
Feb  5 16:41:03 vserv kernel: Process dd (pid: 979, stackpage=f4fad000)
Feb  5 16:41:03 vserv kernel: Stack: fad2799b 00000000 00000004 00000002 c01a31ed 00000000 c02e8b4c 00000286
Feb  5 16:41:03 vserv kernel:        f4faded0 c1c01fb8 f4fadef0 c01a21e6 c02e8b2c f4faded0 c011ad7d c02e8b2c
Feb  5 16:41:03 vserv kernel:        c02e8b84 c02e8b84 c19ef030 f4fac000 c013a7a1 c02852c0 c0127ba6 c19ef030
Feb  5 16:41:03 vserv kernel: Call Trace:    [<fad2799b>] [<c01a31ed>] [<c01a21e6>] [<c011ad7d>] [<c013a7a1>]
Feb  5 16:41:03 vserv kernel:   [<c0127ba6>] [<c012843e>] [<c0128820>] [<c0128998>] [<c0128820>] [<c01360b3>]
Feb  5 16:41:03 vserv kernel:   [<c0108eff>]
Feb  5 16:41:03 vserv kernel: Code: 8a 43 10 8b 34 85 e0 8b d2 fa 83 c4 10 85 f6 74 79 8b 06 83


>>EIP; fad24d76 <[fr1]do_fr1_request+66/130>   <=====

>>ecx; f4fac000 <___strtok+34cacae0/3a51fb40>
>>edx; f5da9f7c <___strtok+35aaaa5c/3a51fb40>
>>esi; f4faded0 <___strtok+34cae9b0/3a51fb40>
>>edi; c02e8b2c <blk_dev+4ec/8b80>
>>ebp; f4fadeb8 <___strtok+34cae998/3a51fb40>
>>esp; f4fade90 <___strtok+34cae970/3a51fb40>

Trace; fad2799b <[fr1]__module_kernel_version+17/10bc>
Trace; c01a31ed <submit_bh+5d/80>
Trace; c01a21e6 <generic_unplug_device+36/40>
Trace; c011ad7d <__run_task_queue+4d/120>
Trace; c013a7a1 <block_sync_page+21/2d0>
Trace; c0127ba6 <___wait_on_page+b6/c0>
Trace; c012843e <do_generic_file_read+2fe/7b0>
Trace; c0128820 <do_generic_file_read+6e0/7b0>
Trace; c0128998 <generic_file_read+a8/750>
Trace; c0128820 <do_generic_file_read+6e0/7b0>
Trace; c01360b3 <default_llseek+2a3/cb0>
Trace; c0108eff <__up_wakeup+12bf/1690>

Code;  fad24d76 <[fr1]do_fr1_request+66/130>
00000000 <_EIP>:
Code;  fad24d76 <[fr1]do_fr1_request+66/130>   <=====
   0:   8a 43 10                  mov    0x10(%ebx),%al   <=====
Code;  fad24d79 <[fr1]do_fr1_request+69/130>
   3:   8b 34 85 e0 8b d2 fa      mov    0xfad28be0(,%eax,4),%esi
Code;  fad24d80 <[fr1]do_fr1_request+70/130>
   a:   83 c4 10                  add    $0x10,%esp
Code;  fad24d83 <[fr1]do_fr1_request+73/130>
   d:   85 f6                     test   %esi,%esi
Code;  fad24d85 <[fr1]do_fr1_request+75/130>
   f:   74 79                     je     8a <_EIP+0x8a> fad24e00 <[fr1]do_fr1_request+f0/130>
Code;  fad24d87 <[fr1]do_fr1_request+77/130>
  11:   8b 06                     mov    (%esi),%eax
Code;  fad24d89 <[fr1]do_fr1_request+79/130>
  13:   83 00 00                  addl   $0x0,(%eax)


  
  
  
Feb  5 16:39:52 vserv kernel: loop: loaded (max 8 devices)
Feb  5 16:40:15 vserv kernel: fr1 open device 9:0
Feb  5 16:40:15 vserv kernel: fr1 ioctl 800c0910
Feb  5 16:40:15 vserv kernel: fr1 open device 9:0
Feb  5 16:40:15 vserv kernel: fr1 ioctl 800c0910
Feb  5 16:40:20 vserv kernel: fr1 open device 9:0
Feb  5 16:40:20 vserv kernel: fr1 ioctl 40480923
Feb  5 16:40:20 vserv kernel: fr1 mkraid1 on device 0
Feb  5 16:40:20 vserv kernel: fr1 ioctl 40140921
Feb  5 16:40:20 vserv kernel: fr1 hotadd called to add for device 700
Feb  5 16:40:20 vserv kernel: fr1 create element 7:0 size 8384 blocks
Feb  5 16:40:20 vserv kernel: fr1 hotadd component 07:00[0] to device 0
Feb  5 16:40:20 vserv kernel: fr1 added new device 07:00 to f7ab5c00 with err 0
Feb  5 16:40:20 vserv kernel: fr1 ioctl 40140921
Feb  5 16:40:20 vserv kernel: fr1 hotadd called to add for device 701
Feb  5 16:40:20 vserv kernel: fr1 create element 7:1 size 8384 blocks
Feb  5 16:40:20 vserv kernel: fr1 hotadd component 07:01[1] to device 0
Feb  5 16:40:20 vserv kernel: fr1 added new device 07:01 to f7ab5c00 with err 0
Feb  5 16:40:20 vserv kernel: fr1 open device 9:0
Feb  5 16:40:20 vserv kernel: fr1 ioctl 400c0930
Feb  5 16:40:20 vserv kernel: fr1 calc component 7:0 size 8384 blocks
Feb  5 16:40:20 vserv kernel: fr1 calc component 7:1 size 8384 blocks
Feb  5 16:40:20 vserv kernel: fr1 calc size 8384 blocks
Feb  5 16:40:20 vserv kernel: fr1 close on device 9:0
Feb  5 16:40:21 vserv last message repeated 3 times
Feb  5 16:41:03 vserv kernel: fr1 open device 9:0
Feb  5 16:41:03 vserv kernel: got request 0
Feb  5 16:41:03 vserv kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000010
  

-Arve