MTD concat layer

Jonas Holmberg jonas.holmberg at axis.com
Wed Mar 6 08:37:07 EST 2002


On Tue, 2002-02-26 at 12:32, Robert Kaiser wrote:
> Hi,
> 
> here is my second attempt of an MTD concat layer. The issues that
> David found with the first one have (hopefully) been fixed. I have also
> made some benchmarks comparing MTD performance on the platforms I have
> at my disposal (DIL/NetPC and SC520CDP) with vs. without concat layer.

I get an OOPS when erasing (jffs gc). I'm not 100% sure that it's
something wrong with mtdconcat.c but the same thing works if I use the
amd_flash driver instead of cfi_cmdset_0002 + mtdconcat. It looks lika a
busfault in concat_erase. I have disassembled vmlinux and it is
"subdev->size" on line 663 in mtdconcat.c that gives the busfault, maybe
because the variable i has been assigned a bad value before entering the
for loop?

(The ksymoops warning is because my target system is a cris and I run
ksymoops on an i686))

/Jonas


ksymoops 2.4.1 on i686 2.4.9-13.  Options used
     -v os/linux/vmlinux (specified)
     -K (specified)
     -L (specified)
     -O (specified)
     -m os/linux/System.map (specified)

Reading Oops report from the terminal
Oops: 0000
IRP: c006996c SRP: c00697ec DCCR: 000004a0 USP: affff884 MOF: 00000000
 r0: c0f3b008  r1: 00000002   r2: c0f3b004  r3: 00050000
 r4: 00000000  r5: c0f3b000   r6: c01d82a0  r7: c0f3a5c0
 r8: 000f0000  r9: 00200000  r10: ffffffff r11: c0f89ec0
r12: 001b0000 r13: c0f89ecc oR10: ffffffff
R_MMU_CAUSE: 00001001
Process jffs_gcd (pid: 17, stackpage=c0f88000)

Stack from affff884:
       0c0b8fae 3aabf7c8 3aabf92a affff920 3aabf7d8 3aad1d51 00000000
00000000
       3aab8c3a affff884 affffa84 3aab5348 00000000 affff8a4 00000001
affffaa0
       affff9d0 00000000 3aabf7d8 00000000 00000000 3aad30b1 3aac96b4
3aabf7d8
Call Trace:
Stack from c0f89d80:
       c0006ac0 c0f89ec0 c0053226 c005338a c0f89ec0 00000000 00000000
00000000
       c00c4b6c 00000000 c0f89e7c c005344e c0f89e7c c018a000 c0006ac0
c00554f8
       000f0000 c0f3a5c0 c01d82a0 c0f3b000 00000000 00050000 c0f89e7c
c018a000
Call Trace: [<c0006ac0>] [<c0053226>] [<c005338a>] [<c005344e>]
[<c0006ac0>] [<c00554f8>] [<c00b2c48>]
       [<c0069746>] [<c0066706>] [<c00552f4>] [<c0053046>] [<c00697ec>]
[<c006996c>] [<da6d0012>] [<c006a26e>]
       [<c004dde6>] [<c005002a>] [<c00502b8>] [<c0052ee4>] [<c005015e>]
[<c005043e>] [<c0053186>] [<c0053190>]
Code: 69 aa 62 ca 6c 96 23 96 05 a1 6d da (ed) 96 06 80 ac d6 04 e0 e0
db e0 3b Oops: 0000
 r0: c0f3b008  r1: 00000002   r2: c0f3b004  r3: 00050000
 r4: 00000000  r5: c0f3b000   r6: c01d82a0  r7: c0f3a5c0
 r8: 000f0000  r9: 00200000  r10: ffffffff r11: c0f89ec0
r12: 001b0000 r13: c0f89ecc oR10: ffffffff
Warning (Oops_set_i370_regs): garbage 'oR10: ffffffff' at end of i370
register line ignored
Process jffs_gcd (pid: 17, stackpage=c0f88000)
Stack from affff884:
       0c0b8fae 3aabf7c8 3aabf92a affff920 3aabf7d8 3aad1d51 00000000
00000000
       3aab8c3a affff884 affffa84 3aab5348 00000000 affff8a4 00000001
affffaa0
       affff9d0 00000000 3aabf7d8 00000000 00000000 3aad30b1 3aac96b4
3aabf7d8
Stack from c0f89d80:
       c0006ac0 c0f89ec0 c0053226 c005338a c0f89ec0 00000000 00000000
00000000
       c00c4b6c 00000000 c0f89e7c c005344e c0f89e7c c018a000 c0006ac0
c00554f8
       000f0000 c0f3a5c0 c01d82a0 c0f3b000 00000000 00050000 c0f89e7c
c018a000
Call Trace: [<c0006ac0>] [<c0053226>] [<c005338a>] [<c005344e>]
[<c0006ac0>] [<c00554f8>] [<c00b2c48>]
       [<c0069746>] [<c0066706>] [<c00552f4>] [<c0053046>] [<c00697ec>]
[<c006996c>] [<da6d0012>] [<c006a26e>]
       [<c004dde6>] [<c005002a>] [<c00502b8>] [<c0052ee4>] [<c005015e>]
[<c005043e>] [<c0053186>] [<c0053190>]
Code: 69 aa 62 ca 6c 96 23 96 05 a1 6d da (ed) 96 06 80 ac d6 04 e0 e0
db e0 3b Using defaults from ksymoops -t elf32-i386 -a i386

>>r0 ; c0f3b008 <_end+e126c8/ed76c0>
>>r2 ; c0f3b004 <_end+e126c4/ed76c0>
>>r3 ; 00050000 Before first symbol
>>r5 ; c0f3b000 <_end+e126c0/ed76c0>
>>r6 ; c01d82a0 <_end+af960/ed76c0>
>>r7 ; c0f3a5c0 <_end+e11c80/ed76c0>
>>r8 ; 000f0000 Before first symbol
>>r9 ; 00200000 Before first symbol
>>r10; ffffffff <END_OF_CODE+3effffff/????>
>>r11; c0f89ec0 <_end+e61580/ed76c0>
>>r12; 001b0000 Before first symbol
>>r13; c0f89ecc <_end+e6158c/ed76c0>
Trace; c0006ac0 <printk+0/14c>
Trace; c0053226 <show_stack+0/90>
Trace; c005338a <show_registers+d4/146>
Trace; c005344e <die_if_kernel+34/46>
Trace; c0006ac0 <printk+0/14c>
Trace; c00554f8 <do_page_fault+200/2a8>
Trace; c00b2c48 <__Umod+0/147c>
Trace; c0069746 <concat_erase_callback+12/14>
Trace; c0066706 <cfi_amdstd_erase_varsize+c02/c0c>
Trace; c00552f4 <handle_mmu_bus_fault+b4/b8>
Trace; c0053046 <mmu_bus_fault+28/30>
Trace; c00697ec <concat_dev_erase+a4/bc>
Trace; c006996c <concat_erase+168/1d0>
Trace; da6d0012 <END_OF_CODE+196d0012/????>
Trace; c006a26e <part_erase+36/38>
Trace; c004dde6 <flash_erase_region+9e/ee>
Trace; c005002a <jffs_try_to_erase+66/90>
Trace; c00502b8 <jffs_garbage_collect_thread+15a/1d2>
Trace; c0052ee4 <_reschedule+8/c>
Trace; c005015e <jffs_garbage_collect_thread+0/1d2>
Trace; c005043e <jffs_read_super+10e/142>
Trace; c0053186 <kernel_thread+12/28>
Trace; c0053190 <kernel_thread+1c/28>
Code;  fffffff4 <END_OF_CODE+3efffff4/????>
00000000 <_EIP>:
Code;  fffffff4 <END_OF_CODE+3efffff4/????>
   0:   69 aa 62 ca 6c 96 23      imul  
$0xa1059623,0x966cca62(%edx),%ebp
Code;  fffffffb <END_OF_CODE+3efffffb/????>
   7:   96 05 a1
Code;  fffffffe <END_OF_CODE+3efffffe/????>
   a:   6d                        insl   (%dx),%es:(%edi)
Code;  ffffffff <END_OF_CODE+3effffff/????>
   b:   da ed                     (bad)
Code;  00000001 Before first symbol
   d:   96                        xchg   %eax,%esi
Code;  00000002 Before first symbol
   e:   06                        push   %es
Code;  00000003 Before first symbol
   f:   80 ac d6 04 e0 e0 db      subb   $0xe0,0xdbe0e004(%esi,%edx,8)
Code;  0000000a Before first symbol
  16:   e0
Code;  0000000b Before first symbol
  17:   3b 00                     cmp    (%eax),%eax


1 warning issued.  Results may not be reliable.





More information about the linux-mtd mailing list