CD access panic on 5.2RC2 (similar to panic before for
audio/data CD access)
Kaarthik Sivakumar
kaarthik at comcast.net
Sun Mar 14 07:11:11 PST 2004
>>> "LE" == Lukas Ertl <le at FreeBSD.org> writes:
LE> On Sun, 14 Mar 2004, Kaarthik Sivakumar wrote:
>> The stacktrace is (copied by hand, so possibility of a typo exists):
>>
>> devstat_remove_entry(c2ee3870, 0, 0, c2f0a600, d89a1ccc) at
>> devstat_remove_entry+0x83
>> g_destroy_provider(c2f0a600, c06542bc, c2f0a654, c2f0a600, c04b68a0)
>> at g_destroy_provider+0x48
>> g_orphan_register(c2f0a600, 0, c0654283, a6, 66666667) at
>> g_orphan_register+0x65
>> one_event(d89a1d10, c04b68c5, c06a0654, 0, 4c) at one_event+0xc0
>> g_run_events(c06a0654, 0, 4c, c06536b9, a) at g_run_events+0x15
>> g_event_procbody(0, d89a1d48, c0655a40, 311, 0) at
>> g_event_procbody+0x25
>> fork_exit(c04b68a0, 0, d89a1d48) at fork_exit+0x7e
>> fork_trampoline() at fork_trampoline+0x8
>> --- trap 0x1, eip = 0, esp = 0xd89a1d7c, ebp = 0 ---
LE> What's the panic message? Would it be possible for you to get a coredump
LE> and a gdb backtrace out of that?
The panic message is as follows (again, copied by hand):
fatal trap 12: page fault while in kernel mode
fault virtual address = 0x1c, code = supervisor read, page not present
instruction pointer = 0x8:0xc0502923
stack pointer = 0x10:0xd89a1c84
frame pointer = 0x10:0xd89a1c98
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1 <= i suspect typos here
proc eflags = interrupt enabled, resume, IOPL=0
current proc = 2 (g_event)
kernel: type 12 trap, code = 0
Stopeed at devstat_remove_entry+0x83: cmpl %ebx, 0x1c(%edx)
Since this is repeatable, I will get a coredump and send it in soon.
Using a debug kernel, I actually tried to get the appropriate filename
and line number using gdb, and this is what I get. This should be help
in the meantime, I think. The line number given by gdb does seem
plausible, but I am not a kernel hacker.
kaarthik at the-saint:~:117>gdb /usr/src/sys/i386/compile/THE-SAINT/kernel.debug
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
(gdb) l *(devstat_remove_entry+0x83)
0xc0502923 is in devstat_remove_entry (../../../kern/subr_devstat.c:198).
193
194 /* Remove this entry from the devstat queue */
195 atomic_add_acq_int(&ds->sequence1, 1);
196 if (ds->id == NULL) {
197 devstat_num_devs--;
198 STAILQ_REMOVE(devstat_head, ds, devstat, dev_links);
199 }
200 devstat_free(ds);
201 devstat_generation++;
202 mtx_unlock(&devstat_mutex);
(gdb)
Thanks.
kaarthik.
More information about the freebsd-current
mailing list