I built from sources cvsup'ed about 24 hours ago, my kernel and world,
this afternoon.  After enabling INVARIANTS and INVARIANT_SUPPORT, I
booted and tried a lot of things.  Nothing seemed to make the new kernel
I had (and it's own modules + world) go crazy ;)

However, when I tried to run cdcontrol on my ATAPI cdrom, the kernel
paniced and instantly rebooted.  The related kgdb output for the crash
dump is attached.

My kernel version is:

    FreeBSD hades.hell.gr 5.0-CURRENT FreeBSD 5.0-CURRENT #0:
      Thu Mar 23 04:43:04 EET 2000
      [EMAIL PROTECTED]:/usr/src/sys/compile/HADES  i386

Seems that it crashed in acdopen().  My version of atapi-cd.c is 1.52.

- Giorgos Keramidas
# gdb -k kernel.debug /var/crash/vmcore.6
GNU gdb 4.18
Copyright 1998 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"...
IdlePTD 2973696
initial pcb at 263ca0
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc01c8c78
stack pointer           = 0x10:0xc55add88
frame pointer           = 0x10:0xc55add94
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         = 299 (cdcontrol)
interrupt mask          = none


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc01c8c78
stack pointer           = 0x10:0xc55add88
frame pointer           = 0x10:0xc55add94
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         = 299 (cdcontrol)
interrupt mask          = none
panic: from debugger
panic: from debugger
Uptime: 7m59s

dumping to dev #ad/0x20001, offset 65536
dump ata0: resetting devices .. done
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
---
#0  boot (howto=256) at ../../kern/kern_shutdown.c:304
304                     dumppcb.pcb_cr3 = rcr3();
(kgdb) bt
#0  boot (howto=256) at ../../kern/kern_shutdown.c:304
#1  0xc01367a5 in panic (fmt=0xc0222e0f "page fault")
    at ../../kern/kern_shutdown.c:554
#2  0xc01ed71a in trap_fatal (frame=0xc55f3d48, eva=0)
    at ../../i386/i386/trap.c:924
#3  0xc01ed3cd in trap_pfault (frame=0xc55f3d48, usermode=0, eva=0)
    at ../../i386/i386/trap.c:817
#4  0xc01ecf53 in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, tf_edi = 1, 
      tf_esi = -1057903872, tf_ebp = -983614060, tf_isp = -983614092, 
      tf_ebx = -1057896448, tf_edx = 1, tf_ecx = -983626240, tf_eax = 0, 
      tf_trapno = 12, tf_err = 0, tf_eip = -1071864696, tf_cs = 8, 
      tf_eflags = 66118, tf_esp = -983330496, tf_ss = -1057903872})
    at ../../i386/i386/trap.c:423
#5  0xc01ca488 in acdopen (dev=0xc0f1ab00, flags=1, fmt=8192, p=0xc55f0e00)
    at ../../dev/ata/atapi-cd.c:497
#6  0xc016cd6d in spec_open (ap=0xc55f3e10)
    at ../../miscfs/specfs/spec_vnops.c:191
#7  0xc016cc6d in spec_vnoperate (ap=0xc55f3e10)
    at ../../miscfs/specfs/spec_vnops.c:117
#8  0xc01a2b21 in ufs_vnoperatespec (ap=0xc55f3e10)
    at ../../ufs/ufs/ufs_vnops.c:2301
#9  0xc016773b in vn_open (ndp=0xc55f3edc, fmode=1, cmode=1197)
    at vnode_if.h:189
#10 0xc01636d1 in open (p=0xc55f0e00, uap=0xc55f3f80)
    at ../../kern/vfs_syscalls.c:994
#11 0xc01ed952 in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, 
      tf_edi = 1, tf_esi = -1, tf_ebp = -1077937768, tf_isp = -983613484, 
      tf_ebx = -1077938792, tf_edx = 10, tf_ecx = -1077938928, tf_eax = 5, 
      tf_trapno = 12, tf_err = 2, tf_eip = 672262868, tf_cs = 31, 
      tf_eflags = 647, tf_esp = -1077938836, tf_ss = 47})
    at ../../i386/i386/trap.c:1073
#12 0xc01e1846 in Xint0x80_syscall ()
#13 0x80491ea in ?? ()
#14 0x8048e9d in ?? ()
#15 0x8048b6d in ?? ()
(kgdb) f 11
#11 0xc01ed952 in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, 
      tf_edi = 1, tf_esi = -1, tf_ebp = -1077937768, tf_isp = -983613484, 
      tf_ebx = -1077938792, tf_edx = 10, tf_ecx = -1077938928, tf_eax = 5, 
      tf_trapno = 12, tf_err = 2, tf_eip = 672262868, tf_cs = 31, 
      tf_eflags = 647, tf_esp = -1077938836, tf_ss = 47})
    at ../../i386/i386/trap.c:1073
1073            error = (*callp->sy_call)(p, args);
(kgdb) list 1000
995             if (rv != KERN_SUCCESS)
996                     return 1;
997     
998             return (0);
999     }
1000    
1001    /*
1002     * System call request from POSIX system call gate interface to kernel.
1003     * Like trap(), argument is call by reference.
1004     */
(kgdb) 
1005    void
1006    syscall(frame)
1007            struct trapframe frame;
1008    {
1009            caddr_t params;
1010            int i;
1011            struct sysent *callp;
1012            struct proc *p = curproc;
1013            u_quad_t sticks;
1014            int error;
# exit

Reply via email to