[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: HFS bug in 2.6.1-rc1-ben1 ?



Roman Zippel a écrit :
Hi,

eric.bachard@b.org wrote:

Jan  7 09:05:41 alube kernel: Oops: Exception in kernel mode, sig: 5 [#1]
Jan 7 09:05:41 alube kernel: NIP: C0057FC0 LR: C0057F7C SP: E8FC1C40 REGS: e8fc1b90 TRAP: 0700 Not tainted


Unfortunately some important information is missing, especially the symbol of the NIP register is missing.

Sorry...

Could you run "gdb vmlinux" and then "disas 0xC0057FC0" and send me the



disassembly output?

gdb /boot/noyau2.6.1-rc1-ben1

Give me :

(gdb) disas 0xC0057FC0
Dump of assembler code for function __getblk_slow:
0xc0057f38 <__getblk_slow>:	mfcr	r12
0xc0057f3c <__getblk_slow+4>:	stwu	r1,-48(r1)
0xc0057f40 <__getblk_slow+8>:	mflr	r0
0xc0057f44 <__getblk_slow+12>:	stw	r0,52(r1)
0xc0057f48 <__getblk_slow+16>:	stmw	r27,28(r1)
0xc0057f4c <__getblk_slow+20>:	addi	r0,r7,-512
0xc0057f50 <__getblk_slow+24>:	stw	r12,24(r1)
0xc0057f54 <__getblk_slow+28>:	mr	r30,r7
0xc0057f58 <__getblk_slow+32>:	mr	r29,r3
0xc0057f5c <__getblk_slow+36>:	mr	r27,r5
0xc0057f60 <__getblk_slow+40>:	mr	r28,r6
0xc0057f64 <__getblk_slow+44>:	cmplwi	cr4,r0,3584
0xc0057f68 <__getblk_slow+48>:	mr	r3,r29
0xc0057f6c <__getblk_slow+52>:	mr	r5,r27
0xc0057f70 <__getblk_slow+56>:	mr	r6,r28
0xc0057f74 <__getblk_slow+60>:	mr	r7,r30
0xc0057f78 <__getblk_slow+64>:	bl	0xc00583b0 <__find_get_block>
0xc0057f7c <__getblk_slow+68>:	cmpwi	r3,0
0xc0057f80 <__getblk_slow+72>:	bne-	0xc0058048 <__getblk_slow+272>
0xc0057f84 <__getblk_slow+76>:	lwz	r9,60(r29)
0xc0057f88 <__getblk_slow+80>:	mr	r4,r28
0xc0057f8c <__getblk_slow+84>:	li	r11,512
0xc0057f90 <__getblk_slow+88>:	lwz	r9,36(r9)
0xc0057f94 <__getblk_slow+92>:	cmpwi	r9,0
0xc0057f98 <__getblk_slow+96>:	beq-	0xc0057fac <__getblk_slow+116>
0xc0057f9c <__getblk_slow+100>:	lhz	r0,398(r9)
0xc0057fa0 <__getblk_slow+104>:	cmpwi	r0,0
0xc0057fa4 <__getblk_slow+108>:	beq-	0xc0057fac <__getblk_slow+116>
0xc0057fa8 <__getblk_slow+112>:	mr	r11,r0
0xc0057fac <__getblk_slow+116>:	addi	r0,r11,-1
0xc0057fb0 <__getblk_slow+120>:	and.	r9,r30,r0
0xc0057fb4 <__getblk_slow+124>:	beq-	0xc0057fbc <__getblk_slow+132>
0xc0057fb8 <__getblk_slow+128>:	twi	31,r0,0
0xc0057fbc <__getblk_slow+132>:	ble-	cr4,0xc0057fc4 <__getblk_slow+140>
0xc0057fc0 <__getblk_slow+136>:	twi	31,r0,0
0xc0057fc4 <__getblk_slow+140>:	li	r9,-1
0xc0057fc8 <__getblk_slow+144>:	addi	r9,r9,1
0xc0057fcc <__getblk_slow+148>:	slw	r0,r30,r9
0xc0057fd0 <__getblk_slow+152>:	cmplwi	r0,4095
0xc0057fd4 <__getblk_slow+156>:	ble+	0xc0057fc8 <__getblk_slow+144>
0xc0057fd8 <__getblk_slow+160>:	srw	r5,r4,r9
0xc0057fdc <__getblk_slow+164>:	mr	r3,r29
0xc0057fe0 <__getblk_slow+168>:	slw	r4,r5,r9
0xc0057fe4 <__getblk_slow+172>:	mr	r6,r30
0xc0057fe8 <__getblk_slow+176>:	bl	0xc0057ddc <grow_dev_page>
0xc0057fec <__getblk_slow+180>:	cmpwi	r3,0
0xc0057ff0 <__getblk_slow+184>:	mr	r31,r3
0xc0057ff4 <__getblk_slow+188>:	beq-	0xc0058040 <__getblk_slow+264>
0xc0057ff8 <__getblk_slow+192>:	bl	0xc0037f20 <unlock_page>
0xc0057ffc <__getblk_slow+196>:	lwz	r0,0(r31)
0xc0058000 <__getblk_slow+200>:	andi.	r9,r0,2048
0xc0058004 <__getblk_slow+204>:	bne-	0xc0057f68 <__getblk_slow+48>
0xc0058008 <__getblk_slow+208>:	mr	r9,r31
0xc005800c <__getblk_slow+212>:	lwzu	r0,4(r9)
0xc0058010 <__getblk_slow+216>:	subfic	r11,r0,0
0xc0058014 <__getblk_slow+220>:	adde	r0,r11,r0
0xc0058018 <__getblk_slow+224>:	twnei	r0,0
0xc005801c <__getblk_slow+228>:	lwarx	r11,r0,r9
0xc0058020 <__getblk_slow+232>:	addic	r11,r11,-1
0xc0058024 <__getblk_slow+236>:	stwcx.	r11,r0,r9
0xc0058028 <__getblk_slow+240>:	bne-	0xc005801c <__getblk_slow+228>
0xc005802c <__getblk_slow+244>:	cmpwi	r11,0
0xc0058030 <__getblk_slow+248>:	bne+	0xc0057f68 <__getblk_slow+48>
0xc0058034 <__getblk_slow+252>:	mr	r3,r31
0xc0058038 <__getblk_slow+256>:	bl	0xc00414cc <__page_cache_release>
0xc005803c <__getblk_slow+260>:	b	0xc0057f68 <__getblk_slow+48>
0xc0058040 <__getblk_slow+264>:	bl	0xc0057324 <free_more_memory>
0xc0058044 <__getblk_slow+268>:	b	0xc0057f68 <__getblk_slow+48>
0xc0058048 <__getblk_slow+272>:	lwz	r0,52(r1)
0xc005804c <__getblk_slow+276>:	lmw	r27,28(r1)
0xc0058050 <__getblk_slow+280>:	lwz	r12,24(r1)
0xc0058054 <__getblk_slow+284>:	addi	r1,r1,48
0xc0058058 <__getblk_slow+288>:	mtlr	r0
0xc005805c <__getblk_slow+292>:	mtcrf	8,r12
0xc0058060 <__getblk_slow+296>:	blr
End of assembler dump.
(gdb)

 Could you also check the log files, whether you see a "bs: ..." print
before the oops?

Sorry, but I could'nt find the "bs: "string you want (?)


FYI : tested with egrep -H -R "bs:" /var/log/*


Above what I'be found with cat /var/log/syslog (the end only :-)  ):


Jan  9 18:19:17 alube kernel: size: 4194304,62916384
Jan 9 18:19:17 alube kernel: kernel BUG in grow_buffers at fs/buffer.c:1189!
Jan  9 18:19:17 alube kernel: Oops: Exception in kernel mode, sig: 5 [#1]
Jan 9 18:19:17 alube kernel: NIP: C0057FC0 LR: C0057F7C SP: E6EEFC40 REGS: e6eefb90 TRAP: 0700 Not tainted Jan 9 18:19:17 alube kernel: MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11 Jan 9 18:19:17 alube kernel: TASK = ef74dc00[1012] 'mount' Last syscall: 21 Jan 9 18:19:17 alube kernel: GPR00: 000001FF E6EEFC40 EF74DC00 00000000 00000000 00000003 00000000 00000000 Jan 9 18:19:17 alube kernel: GPR08: 0000001C 00000000 00000000 00000200 22004422 1002ADF0 10050000 100C0000 Jan 9 18:19:17 alube kernel: GPR16: 00000000 00000000 00000000 00000000 7FFFFE7F 00000000 10020000 00000000 Jan 9 18:19:17 alube kernel: GPR24: 7FFFFE8A E6EEFEB0 00000000 00000200 00000000 EFFF66C0 00000000 EE809200
Jan  9 18:19:17 alube kernel: Call trace:
Jan  9 18:19:17 alube kernel:  [c0058530] __getblk+0x5c/0x64
Jan  9 18:19:17 alube kernel:  [c0058590] __bread+0x10/0x40
Jan  9 18:19:17 alube kernel:  [c00c696c] hfs_mdb_get+0xa4/0x6bc
Jan  9 18:19:17 alube kernel:  [c00c7cc0] hfs_fill_super+0x94/0x1a4
Jan  9 18:19:17 alube kernel:  [c005d1b0] get_sb_bdev+0x128/0x180
Jan  9 18:19:17 alube kernel:  [c00c7de8] hfs_get_sb+0x18/0x28
Jan  9 18:19:17 alube kernel:  [c005d484] do_kern_mount+0x64/0x178
Jan  9 18:19:17 alube kernel:  [c0073914] do_add_mount+0x8c/0x1b8
Jan  9 18:19:17 alube kernel:  [c0073cc4] do_mount+0x174/0x1ac
Jan  9 18:19:17 alube kernel:  [c00740dc] sys_mount+0xa4/0xf4
Jan  9 18:19:17 alube kernel:  [c0007c1c] ret_from_syscall+0x0/0x44


If this can help you, I've done too a

strace -o buggy.txt mount -t hfs /dev/hda11 /macos9


buggy.txt contains :


execve("/bin/mount", ["mount", "-t", "hfs", "/dev/hda11", "/macos9"], [/* 16 vars */]) = 0
uname({sys="Linux", node="alube", ...}) = 0
brk(0)                                  = 0x10025000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=66826, ...}) = 0
mmap(NULL, 66826, PROT_READ, MAP_PRIVATE, 3, 0) = 0x30027000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\322"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1292388, ...}) = 0
mmap(0xfea3000, 1363944, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfea3000
mprotect(0xffd4000, 114664, PROT_NONE)  = 0
mmap(0xffe3000, 45056, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0xffe3000 mmap(0xffee000, 8168, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffee000
close(3)                                = 0
munmap(0x30027000, 66826)               = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1683616, ...}) = 0
mmap2(NULL, 1683616, PROT_READ, MAP_PRIVATE, 3, 0) = 0x30027000
close(3)                                = 0
brk(0)                                  = 0x10025000
brk(0x10046000)                         = 0x10046000
brk(0)                                  = 0x10046000
umask(033)                              = 022
open("/dev/null", O_RDWR|O_LARGEFILE)   = 3
close(3)                                = 0
getuid()                                = 0
geteuid()                               = 0
lstat64("/etc/mtab", {st_mode=S_IFREG|0644, st_size=263, ...}) = 0
stat64("/sbin/mount.hfs", 0x7ffffab8) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV], NULL, 8) = 0
mount("/dev/hda11", "/macos9", "hfs", 0xc0ed0000, 0 <unfinished ...>
+++ killed by SIGTRAP +++


Hope this can help you


Best regards, eric


--
NO ePATENTS / NON AUX BREVETS SUR LES LOGICIELS. See / Voir http://swpat.ffii.org/

eric bachard



Reply to: