Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jun 2003 18:37:11 +0900
From:      Jun Kuriyama <kuriyama@imgsrc.co.jp>
To:        Current <freebsd-current@FreeBSD.org>
Subject:   Panic linux ldconfig with MUTEX_PROFILING
Message-ID:  <7msmpv3lq0.wl@black.imgsrc.co.jp>

next in thread | raw e-mail | index | archive | help

I'm trying to use MUTEX_PROFILING, but paniced in linux ldconfig.
Any clues?


Initial i386 initialization:.
Additional ABI support: linux

Fatal trap 12: page fault while in kernel mode
cpuid = 0; lapic.id = 00000000
fault virtual address   = 0xe8
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc19d24ca
stack pointer           = 0x10:0xcbd51cbc
frame pointer           = 0x10:0xcbd51ce0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 495 (ldconfig)
kernel: type 12 trap, code=0
Stopped at      linux_brk+0x1a: movl    0xe8(%edx),%eax
db> trace
linux_brk(c18f6720,cbd51d10,c0411b33,3fd,1) at linux_brk+0x1a
syscall(2f,2f,2f,80b3b60,20) at syscall+0x26e
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (45, Linux ELF, linux_brk), eip = 0x807fb51, esp = 0xbfbff9b0, ebp = 0xbfbff9b8 ---
db> panic
panic: from debugger
cpuid = 0; lapic.id = 00000000
Debugger("panic")


Fatal trap 3: breakpoint instruction fault while in kernel mode
cpuid = 0; lapic.id = 00000000
instruction pointer     = 0x8:0xc0397195
stack pointer           = 0x10:0xcbd51a28
frame pointer           = 0x10:0xcbd51a34
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = IOPL = 0
current process         = 495 (ldconfig)
Stopped at      linux_brk+0x1a: movl    0xe8(%edx),%eax
db> panic
panic: from debugger
cpuid = 0; lapic.id = 00000000
boot() called on cpu#0
Uptime: 35s
Dumping 95 MB
ata0: resetting devices ..
done
 16 32 48 64 80
Dump complete


(kgdb) where
#0  doadump () at ../../../kern/kern_shutdown.c:240
#1  0xc0231a63 in boot (howto=260) at ../../../kern/kern_shutdown.c:372
#2  0xc0231e46 in panic () at ../../../kern/kern_shutdown.c:550
#3  0xc0148e52 in db_panic () at ../../../ddb/db_command.c:449
#4  0xc0148dd2 in db_command (last_cmdp=0xc041e4d0, cmd_table=0x0, 
    aux_cmd_tablep=0xc0416d24, aux_cmd_tablep_end=0xc0416d28)
    at ../../../ddb/db_command.c:346
#5  0xc0148ee6 in db_command_loop () at ../../../ddb/db_command.c:471
#6  0xc014bc7a in db_trap (type=12, code=0) at ../../../ddb/db_trap.c:73
#7  0xc0396ea3 in kdb_trap (type=12, code=0, regs=0xcbd51c7c)
    at ../../../i386/i386/db_interface.c:172
#8  0xc03aff62 in trap_fatal (frame=0xcbd51c7c, eva=0)
    at ../../../i386/i386/trap.c:831
#9  0xc03afc42 in trap_pfault (frame=0xcbd51c7c, usermode=0, eva=232)
    at ../../../i386/i386/trap.c:750
#10 0xc03af80d in trap (frame=
      {tf_fs = -1069613032, tf_es = 16, tf_ds = 16, tf_edi = -1047568980, tf_esi = -1047566560, tf_ebp = -875225888, tf_isp = -875225944, tf_ebx = -1047568872, tf_edx = 0, tf_ecx = -1047568872, tf_eax = -1047568980, tf_trapno = 12, tf_err = 0, tf_eip = -1046666038, tf_cs = 8, tf_eflags = 66194, tf_esp = -1071480430, tf_ss = -1047568872}) at ../../../i386/i386/trap.c:435
#11 0xc0398848 in calltrap () at {standard input}:97
#12 0xc03b02ae in syscall (frame=
      {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 134953824, tf_esi = 32, tf_ebp = -1077937736, tf_isp = -875225740, tf_ebx = 0, tf_edx = 45, tf_ecx = 0, tf_eax = 45, tf_trapno = 12, tf_err = 2, tf_eip = 134740817, tf_cs = 31, tf_eflags = 658, tf_esp = -1077937744, tf_ss = 47}) at ../../../i386/i386/trap.c:1023
#13 0xc039889d in Xint0x80_syscall () at {standard input}:139
---Can't read userspace from dump, or kernel process---
(kgdb) l *linux_brk+0x1a
0xc19d24ca is in linux_brk (/.a/black/host/disk/arena/home/kuriyama/ncvs/src/sys/compat/linux/linux_misc.c:217).
212     
213     #ifdef DEBUG
214             if (ldebug(brk))
215                     printf(ARGS(brk, "%p"), (void *)args->dsend);
216     #endif
217             old = (vm_offset_t)vm->vm_daddr + ctob(vm->vm_dsize);
218             new = (vm_offset_t)args->dsend;
219             tmp.nsize = (char *) new;
220             if (((caddr_t)new > vm->vm_daddr) && !obreak(td, &tmp))
221                     td->td_retval[0] = (long)new;


-- 
Jun Kuriyama <kuriyama@imgsrc.co.jp> // IMG SRC, Inc.
             <kuriyama@FreeBSD.org> // FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7msmpv3lq0.wl>