All of lore.kernel.org
 help / color / mirror / Atom feed
* Reiser4 on PowerPC, oops and more
@ 2004-10-10 21:32 Carl Henrik Lunde
  2004-10-11 15:39 ` Vladimir Saveliev
  0 siblings, 1 reply; 4+ messages in thread
From: Carl Henrik Lunde @ 2004-10-10 21:32 UTC (permalink / raw)
  To: reiserfs-list

Hi, I know it's not supposed to work (yet), but I thought you might be
interrested in these logs (from a 32 bit PPC machine):

First I tried mounting a partition formatted with mkfs.reiserfs4 on the
PowerPC machine (2.6.9-rc3-mm-3):

ef_hash_table: 8192 buckets
z_hash_table: 8192 buckets
z_hash_table: 8192 buckets
j_hash_table: 16384 buckets
loading reiser4 bitmap......done (771 jiffies)
d_cursor_hash_table: 256 buckets
reiser4[mount(823)]: key_warning (fs/reiser4/plugin/object.c:97)[nikita-717]:
code: -2 at fs/reiser4/tree_walk.c:193
WARNING: Error for inode 720575940379279360 (-2)
for key: (910200000000000:0:0:2:a00000000000000:0)[*]
inode: ino: 0, count: 1, link: 1, mode: 0, size: 0
        uid: 0, gid: 0, dev: 3145733, rdev: 0
        atime: [0,0], mtime: [0,0], ctime: [0,0]
        blkbits: 12, blksize: 0, blocks: 0, bytes: 0
        version: 0, generation: 0, state: 72, flags: 0
        is_reiser4_inode: 1
        key: (910200000000000:1:ffffffffffffffff:0:a00000000000000:0)[stat data]
        file: (nil)
        dir: (nil)
        perm: (nil)
        formatting: (nil)
        hash: (nil)
        sd: (nil)
        sd_seal: version: 0, block: 0
seal key: (0:0:0:0:0:0)[]
seal coord: item_pos = 0, unit_pos 0, tween=before unit, iplug=0
        sd_coord: item_pos = 0, unit_pos 0, tween=invalid, iplug=255
        flags: 0x0, extmask: 0x0, pmask: 0, locality: 653057130340810752



Then I tried mounting a file made with mkfs.reiser4/IA32 on the
PowerPC machine:

$ sudo mount -o loop reiser4-from-ia32 /mnt

Message from syslogd@pitr at Sun Oct 10 21:25:03 2004 ...
pitr kernel: reiser4 panicked cowardly: assertion failed: atomic_read(&node->d_count) > 0

loop: loaded (max 8 devices)
ef_hash_table: 8192 buckets
z_hash_table: 8192 buckets
z_hash_table: 8192 buckets
j_hash_table: 16384 buckets
loading reiser4 bitmap...<4>reiser4[mount(1083)]: check_struct_bnode (fs/reiser4/plugin/space/bitmap.c:725)[vpf-1361]:
WARNING: Checksum for the bitmap block 18 is incorrect
reiser4[mount(1083)]: jrelse_tail (fs/reiser4/jnode.c:1023)[nikita-489]:
reiser4 panicked cowardly: assertion failed: atomic_read(&node->d_count) > 0
pid: 1083, comm: mount
        lock stack:
.... nr_signaled 0
.... curpri high
.... current locks:
        atom: no atom
kernel BUG in reiser4_do_panic at fs/reiser4/debug.c:131!
Oops: Exception in kernel mode, sig: 5 [#1]
NIP: C009E194 LR: C009DFE8 SP: D2879910 REGS: d2879860 TRAP: 0700    Not tainted
MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = d32103b0[1083] 'mount' THREAD: d2878000Last syscall: 120 
GPR00: C043A69C D2879910 D32103B0 00000000 00000001 FFFFFFFF C0440000 C0390000 
GPR08: C043A69C C043A69C C043A69C C043A69C 82002424 1002AE6C 100C0000 100A0000 
GPR16: 00000000 00000000 10010000 7FFFF718 C0340000 C0360000 C0320000 C0370000 
GPR24: D74A3010 C0910C00 D53C72E0 00000000 00000001 C0450000 4B1B5D0B D2879D00 
NIP [c009e194] reiser4_do_panic+0x28c/0x2a0
LR [c009dfe8] reiser4_do_panic+0xe0/0x2a0
Call trace:
 [c00a2504] jrelse_tail+0xd8/0x1b0
 [c019d80c] release+0x18/0x1c0
 [c019da18] done_bnode+0x64/0x68
 [c01a0f88] destroy_allocator_bitmap+0xdc/0x2c8
 [c01a0dec] init_allocator_bitmap+0x1d4/0x294
 [c01a21a4] try_init_format40+0x380/0x4d0
 [c01a2310] get_ready_format40+0x1c/0x17c
 [c0115958] _init_disk_format+0x2c/0x80
 [c0116044] reiser4_fill_super+0x54/0xdc
 [c0069b78] get_sb_bdev+0x150/0x1cc
 [c01075d4] reiser4_get_sb+0x18/0x28
 [c0069e7c] do_kern_mount+0x64/0x128
 [c008126c] do_new_mount+0x94/0xc4
 [c00819c8] do_mount+0x158/0x190
 [c0081e50] sys_mount+0xa4/0xf4


So there are endian-related bugs both in the user space tools and
kernel driver.

Here are the kernel messages from 2.6.8 + debian patches +
reiserfs4-patches from debian, when mounting an image made on IA32:

reiser4[mount(26854)]: check_struct_bnode (fs/reiser4/plugin/space/bitmap.c:724)[vpf-1361]:
WARNING: Checksum for the bitmap block 18 is incorrect
Oops: kernel access of bad area, sig: 11 [#1]
NIP: C009B720 LR: C00A4F80 SP: CF157CA0 REGS: cf157bf0 TRAP: 0300    Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000000, DSISR: 40000000
TASK = d4bef320[26854] 'mount' THREAD: cf156000Last syscall: 120 
GPR00: C00A4F80 CF157CA0 D4BEF320 00000000 C000B32C 00E00000 00000000 00049032 
GPR08: 00000000 00000000 00002000 00000001 0724EA46 1002AE6C 100C0000 100A0000 
GPR16: 00000000 100EF3C8 00000000 00000000 7FFFFAE9 00000000 10020000 00000000 
GPR24: 7FFFFAF1 C02728F0 CF157D30 C0935200 C7100818 C7100818 C7100840 C7100818 
NIP [c009b720] znodes_tree_done+0x3c/0x288
LR [c00a4f80] done_tree+0x4c/0x78
Call trace:
 [c00a4f80] done_tree+0x4c/0x78
 [c00c2dd8] _done_formatted_fake+0x28/0x48
 [c00c31f8] done_super+0x48/0x64
 [c00c329c] reiser4_fill_super+0x88/0x90
 [c0066fc4] get_sb_bdev+0x150/0x1c0
 [c00bc4cc] reiser4_get_sb+0x18/0x28
 [c00672ac] do_kern_mount+0x64/0x128
 [c007deec] do_new_mount+0x94/0xc4
 [c007e618] do_mount+0x158/0x190
 [c007eaa0] sys_mount+0xa4/0xf4
 [c0007d30] ret_from_syscall+0x0/0x4c


(I tried reiser4progs 1.0.2 too.  Note that the -mm3 kernel is
probably not stable on PowerPC, programs such as firefox crashed at
startup.)

I also took a quick search for non-byteswapped 32 bit integers, and
found that at least the alloc block checksum is not byteswapped (when
creating an image on PPC).

-- 
Carl Henrik Lunde

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiser4 on PowerPC, oops and more
  2004-10-10 21:32 Reiser4 on PowerPC, oops and more Carl Henrik Lunde
@ 2004-10-11 15:39 ` Vladimir Saveliev
  2004-10-24 20:57   ` Carl Henrik Lunde
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir Saveliev @ 2004-10-11 15:39 UTC (permalink / raw)
  To: Carl Henrik Lunde; +Cc: reiserfs-list

[-- Attachment #1: Type: text/plain, Size: 5886 bytes --]

Hello

On Mon, 2004-10-11 at 01:32, Carl Henrik Lunde wrote:
> Hi, I know it's not supposed to work (yet), but I thought you might be
> interrested in these logs (from a 32 bit PPC machine):

yes, thanks
> 
> First I tried mounting a partition formatted with mkfs.reiserfs4 on the
> PowerPC machine (2.6.9-rc3-mm-3):
> 

Would you please send us what do

debugfs.reiser4 
and
debugfs.reiser4 -t

output?

Would you try to mount file made by mkfs.reiser4 on i386?


> ef_hash_table: 8192 buckets
> z_hash_table: 8192 buckets
> z_hash_table: 8192 buckets
> j_hash_table: 16384 buckets
> loading reiser4 bitmap......done (771 jiffies)
> d_cursor_hash_table: 256 buckets
> reiser4[mount(823)]: key_warning (fs/reiser4/plugin/object.c:97)[nikita-717]:
> code: -2 at fs/reiser4/tree_walk.c:193
> WARNING: Error for inode 720575940379279360 (-2)
> for key: (910200000000000:0:0:2:a00000000000000:0)[*]
> inode: ino: 0, count: 1, link: 1, mode: 0, size: 0
>         uid: 0, gid: 0, dev: 3145733, rdev: 0
>         atime: [0,0], mtime: [0,0], ctime: [0,0]
>         blkbits: 12, blksize: 0, blocks: 0, bytes: 0
>         version: 0, generation: 0, state: 72, flags: 0
>         is_reiser4_inode: 1
>         key: (910200000000000:1:ffffffffffffffff:0:a00000000000000:0)[stat data]
>         file: (nil)
>         dir: (nil)
>         perm: (nil)
>         formatting: (nil)
>         hash: (nil)
>         sd: (nil)
>         sd_seal: version: 0, block: 0
> seal key: (0:0:0:0:0:0)[]
> seal coord: item_pos = 0, unit_pos 0, tween=before unit, iplug=0
>         sd_coord: item_pos = 0, unit_pos 0, tween=invalid, iplug=255
>         flags: 0x0, extmask: 0x0, pmask: 0, locality: 653057130340810752
> 
> 
> 
> Then I tried mounting a file made with mkfs.reiser4/IA32 on the
> PowerPC machine:
> 
> $ sudo mount -o loop reiser4-from-ia32 /mnt
> 
> Message from syslogd@pitr at Sun Oct 10 21:25:03 2004 ...
> pitr kernel: reiser4 panicked cowardly: assertion failed: atomic_read(&node->d_count) > 0
> 
> loop: loaded (max 8 devices)
> ef_hash_table: 8192 buckets
> z_hash_table: 8192 buckets
> z_hash_table: 8192 buckets
> j_hash_table: 16384 buckets
> loading reiser4 bitmap...<4>reiser4[mount(1083)]: check_struct_bnode (fs/reiser4/plugin/space/bitmap.c:725)[vpf-1361]:
> WARNING: Checksum for the bitmap block 18 is incorrect
> reiser4[mount(1083)]: jrelse_tail (fs/reiser4/jnode.c:1023)[nikita-489]:
> reiser4 panicked cowardly: assertion failed: atomic_read(&node->d_count) > 0
> pid: 1083, comm: mount
>         lock stack:
> .... nr_signaled 0
> .... curpri high
> .... current locks:
>         atom: no atom
> kernel BUG in reiser4_do_panic at fs/reiser4/debug.c:131!
> Oops: Exception in kernel mode, sig: 5 [#1]
> NIP: C009E194 LR: C009DFE8 SP: D2879910 REGS: d2879860 TRAP: 0700    Not tainted
> MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
> TASK = d32103b0[1083] 'mount' THREAD: d2878000Last syscall: 120 
> GPR00: C043A69C D2879910 D32103B0 00000000 00000001 FFFFFFFF C0440000 C0390000 
> GPR08: C043A69C C043A69C C043A69C C043A69C 82002424 1002AE6C 100C0000 100A0000 
> GPR16: 00000000 00000000 10010000 7FFFF718 C0340000 C0360000 C0320000 C0370000 
> GPR24: D74A3010 C0910C00 D53C72E0 00000000 00000001 C0450000 4B1B5D0B D2879D00 
> NIP [c009e194] reiser4_do_panic+0x28c/0x2a0
> LR [c009dfe8] reiser4_do_panic+0xe0/0x2a0
> Call trace:
>  [c00a2504] jrelse_tail+0xd8/0x1b0
>  [c019d80c] release+0x18/0x1c0
>  [c019da18] done_bnode+0x64/0x68
>  [c01a0f88] destroy_allocator_bitmap+0xdc/0x2c8
>  [c01a0dec] init_allocator_bitmap+0x1d4/0x294
>  [c01a21a4] try_init_format40+0x380/0x4d0
>  [c01a2310] get_ready_format40+0x1c/0x17c
>  [c0115958] _init_disk_format+0x2c/0x80
>  [c0116044] reiser4_fill_super+0x54/0xdc
>  [c0069b78] get_sb_bdev+0x150/0x1cc
>  [c01075d4] reiser4_get_sb+0x18/0x28
>  [c0069e7c] do_kern_mount+0x64/0x128
>  [c008126c] do_new_mount+0x94/0xc4
>  [c00819c8] do_mount+0x158/0x190
>  [c0081e50] sys_mount+0xa4/0xf4
> 
> 
> So there are endian-related bugs both in the user space tools and
> kernel driver.
> 

Would you please try to patch reiser4progs's
plugin/alloc/alloc40/alloc40.c with the attached patch and try again?

> Here are the kernel messages from 2.6.8 + debian patches +
> reiserfs4-patches from debian, when mounting an image made on IA32:
> 
> reiser4[mount(26854)]: check_struct_bnode (fs/reiser4/plugin/space/bitmap.c:724)[vpf-1361]:
> WARNING: Checksum for the bitmap block 18 is incorrect
> Oops: kernel access of bad area, sig: 11 [#1]
> NIP: C009B720 LR: C00A4F80 SP: CF157CA0 REGS: cf157bf0 TRAP: 0300    Not tainted
> MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
> DAR: 00000000, DSISR: 40000000
> TASK = d4bef320[26854] 'mount' THREAD: cf156000Last syscall: 120 
> GPR00: C00A4F80 CF157CA0 D4BEF320 00000000 C000B32C 00E00000 00000000 00049032 
> GPR08: 00000000 00000000 00002000 00000001 0724EA46 1002AE6C 100C0000 100A0000 
> GPR16: 00000000 100EF3C8 00000000 00000000 7FFFFAE9 00000000 10020000 00000000 
> GPR24: 7FFFFAF1 C02728F0 CF157D30 C0935200 C7100818 C7100818 C7100840 C7100818 
> NIP [c009b720] znodes_tree_done+0x3c/0x288
> LR [c00a4f80] done_tree+0x4c/0x78
> Call trace:
>  [c00a4f80] done_tree+0x4c/0x78
>  [c00c2dd8] _done_formatted_fake+0x28/0x48
>  [c00c31f8] done_super+0x48/0x64
>  [c00c329c] reiser4_fill_super+0x88/0x90
>  [c0066fc4] get_sb_bdev+0x150/0x1c0
>  [c00bc4cc] reiser4_get_sb+0x18/0x28
>  [c00672ac] do_kern_mount+0x64/0x128
>  [c007deec] do_new_mount+0x94/0xc4
>  [c007e618] do_mount+0x158/0x190
>  [c007eaa0] sys_mount+0xa4/0xf4
>  [c0007d30] ret_from_syscall+0x0/0x4c
> 
> 
> (I tried reiser4progs 1.0.2 too.  Note that the -mm3 kernel is
> probably not stable on PowerPC, programs such as firefox crashed at
> startup.)
> 
> I also took a quick search for non-byteswapped 32 bit integers, and
> found that at least the alloc block checksum is not byteswapped (when
> creating an image on PPC).

[-- Attachment #2: alloc40.c.diff --]
[-- Type: text/plain, Size: 511 bytes --]

===== plugin/alloc/alloc40/alloc40.c 1.176 vs edited =====
--- 1.176/plugin/alloc/alloc40/alloc40.c	2004-09-22 23:10:50 +04:00
+++ edited/plugin/alloc/alloc40/alloc40.c	2004-10-11 19:34:53 +04:00
@@ -344,7 +344,8 @@
 		adler = aal_adler32(current, chunk);
 	}
 	
-	aal_memcpy(block.data, &adler, sizeof(adler));
+	/*aal_memcpy(block.data, &adler, sizeof(adler));*/
+	*((uint32_t *)block.data) = CPU_TO_LE32(adler);
 
 	/* Saving block onto device it was allocated on */
 	if ((res = aal_block_write(&block))) {

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiser4 on PowerPC, oops and more
  2004-10-11 15:39 ` Vladimir Saveliev
@ 2004-10-24 20:57   ` Carl Henrik Lunde
  2004-10-25 12:10     ` Vitaly Fertman
  0 siblings, 1 reply; 4+ messages in thread
From: Carl Henrik Lunde @ 2004-10-24 20:57 UTC (permalink / raw)
  To: Vladimir Saveliev; +Cc: reiserfs-list

Vladimir Saveliev <vs@namesys.com> writes:

> Would you please send us what do
>
> debugfs.reiser4 
> and
> debugfs.reiser4 -t
>
> output?

(This is from 1.0.2, made with mkfs.reiser4 -f -o key=key_short (I
forgot to enable long keys in the kernel)):

pitr ~ > /usr/local/sbin/debugfs.reiser4 img-from-ia32
/usr/local/sbin/debugfs.reiser4 1.0.2
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
reiser4progs/COPYING. 

Master super block (16):
magic:          ReIsEr4
blksize:        4096
format:         0x0 (format40)
uuid:           149457d7-c308-48e3-8dda-a6c9b3000000
label:          <none>

Format super block (17):
plugin:         format40
description:    Disk-format for reiser4. 
magic:          ReIsEr40FoRmAt
flushes:        0
mkfs id:        0x484b7b0a
blocks:         32
free blocks:    7
root block:     23
tail policy:    0x2 (smart)
next oid:       0x10000
file count:     0
tree height:    2
key policy:     SHORT

FS status block (21):
FS marked consistent


pitr ~ > /usr/local/sbin/debugfs.reiser4 -t img-from-ia32
/usr/local/sbin/debugfs.reiser4 1.0.2
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. 

NODE (23) LEVEL=2 ITEMS=1 SPACE=4030 MKFS ID=0x484b7b0a FLUSH=0x0
#0  NPTR (nodeptr40): [29:1(SD):2a:0] OFF=28, LEN=8, flags=0x0 
[24]
==============================================================================
NODE (24) LEVEL=1 ITEMS=2 SPACE=3856 MKFS ID=0x484b7b0a FLUSH=0x0
#0  SD (stat40): [29:1(SD):2a:0] OFF=28, LEN=82, flags=0x0 
exts:           0
mask:           0x0
------------------------------------------------------------------------------
#1  DIRITEM (cde40): [2a:0(NAME):0:0] OFF=110, LEN=70, flags=0x0 
NR  NAME                                  OFFSET HASH                              SDKEY             
  0 .                                         38 0000000000000000:0000000000000000 0000291:000002a
  1 ..                                        54 002e2e0000000000:0000000000000000 0000291:000002a
==============================================================================


pitr ~ > /usr/local/sbin/debugfs.reiser4 img-made-locally
/usr/local/sbin/debugfs.reiser4 1.0.2
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
reiser4progs/COPYING. 

Master super block (16):
magic:          ReIsEr4
blksize:        4096
format:         0x0 (format40)
uuid:           7bca4399-bef6-460e-a580-2b4ebbfdf3dd
label:          <none>

Format super block (17):
plugin:         format40
description:    Disk-format for reiser4. 
magic:          ReIsEr40FoRmAt
flushes:        0
mkfs id:        0x78cd07fa
blocks:         32
free blocks:    7
root block:     23
tail policy:    0x2 (smart)
next oid:       0x10000
file count:     0
tree height:    2
key policy:     SHORT

FS status block (21):
FS marked consistent


pitr ~ > /usr/local/sbin/debugfs.reiser4 -t img-made-locally
/usr/local/sbin/debugfs.reiser4 1.0.2
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
reiser4progs/COPYING. 

NODE (23) LEVEL=2 ITEMS=1 SPACE=4030 MKFS ID=0x78cd07fa FLUSH=0x0
#0  NPTR (nodeptr40): [29:1(SD):2a:0] OFF=28, LEN=8, flags=0x0 
[24]
==============================================================================
NODE (24) LEVEL=1 ITEMS=2 SPACE=3856 MKFS ID=0x78cd07fa FLUSH=0x0
#0  SD (stat40): [29:1(SD):2a:0] OFF=28, LEN=82, flags=0x0 
exts:           3
mask:           0x0
plugin:         sdext_lw
offset:         2
len:            14
mode:           drwxr-xr-x
nlink:          3
size:           2
plugin:         sdext_unix
offset:         16
len:            28
uid:            1000
gid:            1000
atime:          Sun Oct 24 22:30:16 2004
mtime:          Sun Oct 24 22:30:16 2004
ctime:          Sun Oct 24 22:30:16 2004
rdev:           68
bytes:          68
plugin:         sdext_plug
offset:         44
len:            38
Pset count:     9
    permission : id = 0
    formatting : id = 2 (smart)
          hash : id = 1 (r5_hash)
     fibration : id = 2 (ext_1_fibre)
      statdata : id = 0 (stat40)
       diritem : id = 2 (cde40)
        crypto : id = 0
        digest : id = 0
      compress : id = 0
------------------------------------------------------------------------------
#1  DIRITEM (cde40): [2a:0(NAME):0:0] OFF=110, LEN=70, flags=0x0 
NR  NAME                                  OFFSET HASH                           
   SDKEY             
  0 .                                         38 0000000000000000:00000000000000
00 0000291:000002a
  1 ..                                        54 002e2e0000000000:00000000000000
00 0000291:000002a
==============================================================================


> Would you please try to patch reiser4progs's
> plugin/alloc/alloc40/alloc40.c with the attached patch and try again?
>

This patch only fixes the alloc block, which (I believe) is not *yet* a
problem, there are more bugs which has to be solved first.

Anyway, today I compiled 2.6.9-mm1 and got a new backtrace (I get the
same trace with both the image made on PPC and IA32 now (except for some
registers)):

pitr ~ > sudo mount -t reiser4 -o loop ~/img-from-ia32 /mnt
reiser4[mount(1943)]: key_warning (fs/reiser4/plugin/object.c:97)[nikita-717]:
WARNING: Error for inode 720575940379279360 (-2)
reiser4[mount(1943)]: commit_current_atom (fs/reiser4/txnmgr.c:1249)[zam-597]:
kernel BUG in reiser4_do_panic at fs/reiser4/debug.c:131!
Oops: Exception in kernel mode, sig: 5 [#2]
NIP: C009E25C LR: C00AEDD4 SP: CAB9BB30 REGS: cab9ba80 TRAP: 0700    Not tainted
MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = d1fb40b0[1943] 'mount' THREAD: cab9a000Last syscall: 120 
GPR00: C00AEDD4 CAB9BB30 D1FB40B0 C027152C FFFFFFE4 00000000 00017FC6 C035FF68 
GPR08: C036031C C03123C8 D7637E7C CAB9BB3C 00000001 1002AE6C 100C0000 100A0000 
GPR16: 00000000 101F0448 00000000 00000000 7FFFF9D6 00000000 10020000 00000000 
GPR24: 7FFFF9E8 C02AE52C CAB9BD30 CF1EE000 CAB9BC28 CAB9BC20 C0370000 C0350000 
NIP [c009e25c] reiser4_do_panic+0x2c/0xc4
LR [c00aedd4] force_commit_atom_nolock+0x0/0x40
Call trace:
 [c00aedd4] force_commit_atom_nolock+0x0/0x40
 [c00af5c0] try_commit_txnh+0x190/0x208
 [c00af67c] commit_txnh+0x44/0xbc
 [c00ae4cc] txn_end+0x68/0x70
 [c00ae4ec] txn_restart+0x18/0x34
 [c00aee00] force_commit_atom_nolock+0x2c/0x40
 [c00aef38] txnmgr_force_commit_all+0xc8/0xdc
 [c010736c] release_format40+0xd4/0x138
 [c00cca30] _done_disk_format+0x20/0x30
 [c00ccd98] done_super+0x48/0x64
 [c00cce3c] reiser4_fill_super+0x88/0x90
 [c0069a8c] get_sb_bdev+0x150/0x1cc
 [c00c53fc] reiser4_get_sb+0x18/0x28
 [c0069d90] do_kern_mount+0x64/0x128
 [c00814cc] do_new_mount+0x94/0xc4

-- 
Carl Henrik Lunde

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiser4 on PowerPC, oops and more
  2004-10-24 20:57   ` Carl Henrik Lunde
@ 2004-10-25 12:10     ` Vitaly Fertman
  0 siblings, 0 replies; 4+ messages in thread
From: Vitaly Fertman @ 2004-10-25 12:10 UTC (permalink / raw)
  To: Carl Henrik Lunde, Vladimir Saveliev; +Cc: reiserfs-list

[-- Attachment #1: Type: text/plain, Size: 7214 bytes --]

Hi Carl, 

would you try this patch for the reiser4progs, it swaps Stat Data 
extention mask and SD extentions should be reachable now.

-- 
Thanks,
Vitaly Fertman

On Monday 25 October 2004 00:57, Carl Henrik Lunde wrote:
> Vladimir Saveliev <vs@namesys.com> writes:
> > Would you please send us what do
> >
> > debugfs.reiser4
> > and
> > debugfs.reiser4 -t
> >
> > output?
>
> (This is from 1.0.2, made with mkfs.reiser4 -f -o key=key_short (I
> forgot to enable long keys in the kernel)):
>
> pitr ~ > /usr/local/sbin/debugfs.reiser4 img-from-ia32
> /usr/local/sbin/debugfs.reiser4 1.0.2
> Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
> reiser4progs/COPYING.
>
> Master super block (16):
> magic:          ReIsEr4
> blksize:        4096
> format:         0x0 (format40)
> uuid:           149457d7-c308-48e3-8dda-a6c9b3000000
> label:          <none>
>
> Format super block (17):
> plugin:         format40
> description:    Disk-format for reiser4.
> magic:          ReIsEr40FoRmAt
> flushes:        0
> mkfs id:        0x484b7b0a
> blocks:         32
> free blocks:    7
> root block:     23
> tail policy:    0x2 (smart)
> next oid:       0x10000
> file count:     0
> tree height:    2
> key policy:     SHORT
>
> FS status block (21):
> FS marked consistent
>
>
> pitr ~ > /usr/local/sbin/debugfs.reiser4 -t img-from-ia32
> /usr/local/sbin/debugfs.reiser4 1.0.2
> Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
> reiser4progs/COPYING.
>
> NODE (23) LEVEL=2 ITEMS=1 SPACE=4030 MKFS ID=0x484b7b0a FLUSH=0x0
> #0  NPTR (nodeptr40): [29:1(SD):2a:0] OFF=28, LEN=8, flags=0x0
> [24]
> ===========================================================================
>=== NODE (24) LEVEL=1 ITEMS=2 SPACE=3856 MKFS ID=0x484b7b0a FLUSH=0x0
> #0  SD (stat40): [29:1(SD):2a:0] OFF=28, LEN=82, flags=0x0
> exts:           0
> mask:           0x0
> ---------------------------------------------------------------------------
>--- #1  DIRITEM (cde40): [2a:0(NAME):0:0] OFF=110, LEN=70, flags=0x0
> NR  NAME                                  OFFSET HASH                      
>        SDKEY 0 .                                         38
> 0000000000000000:0000000000000000 0000291:000002a 1 ..                     
>                   54 002e2e0000000000:0000000000000000 0000291:000002a
> ===========================================================================
>===
>
>
> pitr ~ > /usr/local/sbin/debugfs.reiser4 img-made-locally
> /usr/local/sbin/debugfs.reiser4 1.0.2
> Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
> reiser4progs/COPYING.
>
> Master super block (16):
> magic:          ReIsEr4
> blksize:        4096
> format:         0x0 (format40)
> uuid:           7bca4399-bef6-460e-a580-2b4ebbfdf3dd
> label:          <none>
>
> Format super block (17):
> plugin:         format40
> description:    Disk-format for reiser4.
> magic:          ReIsEr40FoRmAt
> flushes:        0
> mkfs id:        0x78cd07fa
> blocks:         32
> free blocks:    7
> root block:     23
> tail policy:    0x2 (smart)
> next oid:       0x10000
> file count:     0
> tree height:    2
> key policy:     SHORT
>
> FS status block (21):
> FS marked consistent
>
>
> pitr ~ > /usr/local/sbin/debugfs.reiser4 -t img-made-locally
> /usr/local/sbin/debugfs.reiser4 1.0.2
> Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
> reiser4progs/COPYING.
>
> NODE (23) LEVEL=2 ITEMS=1 SPACE=4030 MKFS ID=0x78cd07fa FLUSH=0x0
> #0  NPTR (nodeptr40): [29:1(SD):2a:0] OFF=28, LEN=8, flags=0x0
> [24]
> ===========================================================================
>=== NODE (24) LEVEL=1 ITEMS=2 SPACE=3856 MKFS ID=0x78cd07fa FLUSH=0x0
> #0  SD (stat40): [29:1(SD):2a:0] OFF=28, LEN=82, flags=0x0
> exts:           3
> mask:           0x0
> plugin:         sdext_lw
> offset:         2
> len:            14
> mode:           drwxr-xr-x
> nlink:          3
> size:           2
> plugin:         sdext_unix
> offset:         16
> len:            28
> uid:            1000
> gid:            1000
> atime:          Sun Oct 24 22:30:16 2004
> mtime:          Sun Oct 24 22:30:16 2004
> ctime:          Sun Oct 24 22:30:16 2004
> rdev:           68
> bytes:          68
> plugin:         sdext_plug
> offset:         44
> len:            38
> Pset count:     9
>     permission : id = 0
>     formatting : id = 2 (smart)
>           hash : id = 1 (r5_hash)
>      fibration : id = 2 (ext_1_fibre)
>       statdata : id = 0 (stat40)
>        diritem : id = 2 (cde40)
>         crypto : id = 0
>         digest : id = 0
>       compress : id = 0
> ---------------------------------------------------------------------------
>--- #1  DIRITEM (cde40): [2a:0(NAME):0:0] OFF=110, LEN=70, flags=0x0
> NR  NAME                                  OFFSET HASH
>    SDKEY
>   0 .                                         38
> 0000000000000000:00000000000000 00 0000291:000002a
>   1 ..                                        54
> 002e2e0000000000:00000000000000 00 0000291:000002a
> ===========================================================================
>===
>
> > Would you please try to patch reiser4progs's
> > plugin/alloc/alloc40/alloc40.c with the attached patch and try again?
>
> This patch only fixes the alloc block, which (I believe) is not *yet* a
> problem, there are more bugs which has to be solved first.
>
> Anyway, today I compiled 2.6.9-mm1 and got a new backtrace (I get the
> same trace with both the image made on PPC and IA32 now (except for some
> registers)):
>
> pitr ~ > sudo mount -t reiser4 -o loop ~/img-from-ia32 /mnt
> reiser4[mount(1943)]: key_warning
> (fs/reiser4/plugin/object.c:97)[nikita-717]: WARNING: Error for inode
> 720575940379279360 (-2)
> reiser4[mount(1943)]: commit_current_atom
> (fs/reiser4/txnmgr.c:1249)[zam-597]: kernel BUG in reiser4_do_panic at
> fs/reiser4/debug.c:131!
> Oops: Exception in kernel mode, sig: 5 [#2]
> NIP: C009E25C LR: C00AEDD4 SP: CAB9BB30 REGS: cab9ba80 TRAP: 0700    Not
> tainted MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
> TASK = d1fb40b0[1943] 'mount' THREAD: cab9a000Last syscall: 120
> GPR00: C00AEDD4 CAB9BB30 D1FB40B0 C027152C FFFFFFE4 00000000 00017FC6
> C035FF68 GPR08: C036031C C03123C8 D7637E7C CAB9BB3C 00000001 1002AE6C
> 100C0000 100A0000 GPR16: 00000000 101F0448 00000000 00000000 7FFFF9D6
> 00000000 10020000 00000000 GPR24: 7FFFF9E8 C02AE52C CAB9BD30 CF1EE000
> CAB9BC28 CAB9BC20 C0370000 C0350000 NIP [c009e25c]
> reiser4_do_panic+0x2c/0xc4
> LR [c00aedd4] force_commit_atom_nolock+0x0/0x40
> Call trace:
>  [c00aedd4] force_commit_atom_nolock+0x0/0x40
>  [c00af5c0] try_commit_txnh+0x190/0x208
>  [c00af67c] commit_txnh+0x44/0xbc
>  [c00ae4cc] txn_end+0x68/0x70
>  [c00ae4ec] txn_restart+0x18/0x34
>  [c00aee00] force_commit_atom_nolock+0x2c/0x40
>  [c00aef38] txnmgr_force_commit_all+0xc8/0xdc
>  [c010736c] release_format40+0xd4/0x138
>  [c00cca30] _done_disk_format+0x20/0x30
>  [c00ccd98] done_super+0x48/0x64
>  [c00cce3c] reiser4_fill_super+0x88/0x90
>  [c0069a8c] get_sb_bdev+0x150/0x1cc
>  [c00c53fc] reiser4_get_sb+0x18/0x28
>  [c0069d90] do_kern_mount+0x64/0x128
>  [c00814cc] do_new_mount+0x94/0xc4































[-- Attachment #2: reiser4progs_sdextmask.patch --]
[-- Type: text/x-diff, Size: 2454 bytes --]

===== plugin/item/stat40/stat40.c 1.272 vs edited =====
--- 1.272/plugin/item/stat40/stat40.c	Wed Sep 22 23:10:50 2004
+++ edited/plugin/item/stat40/stat40.c	Mon Oct 25 15:23:13 2004
@@ -42,7 +42,7 @@
 				}
 			}
 			
-			extmask = *((uint16_t *)stat_body(&stat));
+			extmask = st40_get_extmask(stat_body(&stat));
 			
 			stat.ext_plug = NULL;
 			
@@ -314,7 +314,7 @@
 
 	/* If this is a new item being inserted, zero the on-disk mask. */
 	if (place->pos.unit == MAX_UINT32 && insert)
-		((stat40_t *)stat_body(&stat))->extmask = 0;
+		st40_set_extmask(stat_body(&stat), 0);
 
 	if (!stath->extmask)
 		return 0;
@@ -339,7 +339,7 @@
 				}
 			}
 			
-			extmask = *((uint16_t *)stat_body(&stat));
+			extmask = st40_get_extmask(stat_body(&stat));
 
 			if (insert) {
 				/* Calculating new extmask in order to 
@@ -348,7 +348,7 @@
 					     0x000000000000ffff));
 
 				/* Update mask.*/
-				*((uint16_t *)stat_body(&stat)) = extmask;
+				st40_set_extmask(stat_body(&stat), extmask);
 			}
 			
 			stat.offset += sizeof(d16_t);
@@ -449,7 +449,7 @@
 				}
 			}
 			
-			old_extmask = *((uint16_t *)stat_body(&stat));
+			old_extmask = st40_get_extmask(stat_body(&stat));
 
 			
 			/* Calculating new extmask in order to update old
@@ -458,7 +458,7 @@
 						       0x000000000000ffff));
 
 			/* Update mask.*/
-			*((uint16_t *)stat_body(&stat)) = new_extmask;
+			st40_set_extmask(stat_body(&stat), new_extmask);
 				
 			chunks++;
 			stat.offset += sizeof(d16_t);
===== plugin/item/stat40/stat40.h 1.49 vs edited =====
--- 1.49/plugin/item/stat40/stat40.h	Mon Apr 26 22:56:52 2004
+++ edited/plugin/item/stat40/stat40.h	Mon Oct 25 15:13:38 2004
@@ -29,7 +29,7 @@
 
 #define STAT40_EXTNR (64)
 
-#define st40_get_extmask(stat)		aal_get_le16(stat, extmask)
-#define st40_set_extmask(stat, val)	aal_set_le16(stat, extmask, val)
+#define st40_get_extmask(stat)		aal_get_le16(((stat40_t *)stat), extmask)
+#define st40_set_extmask(stat, val)	aal_set_le16(((stat40_t *)stat), extmask, val)
 
 #endif
===== plugin/item/stat40/stat40_repair.c 1.64 vs edited =====
--- 1.64/plugin/item/stat40/stat40_repair.c	Sat Oct 16 01:10:22 2004
+++ edited/plugin/item/stat40/stat40_repair.c	Mon Oct 25 15:20:05 2004
@@ -65,7 +65,7 @@
 		return 0;
 
 	/* This time the callback is called for the extmask. Fix it. */
-	*((uint16_t *)stat_body(stat)) = *(uint16_t *)mask;
+	st40_set_extmask(stat_body(stat), *(uint16_t *)mask);
 
 	(*mask) >>= 16;
 	return 0;

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-10-25 12:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-10 21:32 Reiser4 on PowerPC, oops and more Carl Henrik Lunde
2004-10-11 15:39 ` Vladimir Saveliev
2004-10-24 20:57   ` Carl Henrik Lunde
2004-10-25 12:10     ` Vitaly Fertman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.