Date: Sat, 15 Nov 1997 14:39:21 +0000 From: James Raynard <fcurrent@jraynard.demon.co.uk> To: freebsd-current@freebsd.org Subject: Page fault while in kernel mode Message-ID: <19971115143921.07053@jraynard.demon.co.uk>
next in thread | raw e-mail | index | archive | help
I can replicate this by doing the following:
1. Log on as root on ttyv0 and compile a kernel.
2. Log on my myself on ttyv1, do su and mount a CD-ROM.
3. Navigate around the CD using tcsh's filename completion.
4. System freezes up.
DDB says:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x8
fault code = supervisor page read, page not present
instruction pointer = 0x8: 0xf3f57dc8
stack pointer = 0x10: 0xf3c98bdc
frame pointer = 0x10: 0xf3c98c10
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor flags = interrupt enabled, resume, IOPL = 0
current process = 890 (tcsh)
and gdb -k says:
[GDB banner]
IdlePTD 219000
current pcb at 1cc844
panic: from debugger
#0 boot (howto=256) at ../../kern/kern_shutdown.c:285
285 dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0 boot (howto=256) at ../../kern/kern_shutdown.c:285
#1 0xf011214f in panic (fmt=0xf01013c9 "from debugger")
at ../../kern/kern_shutdown.c:415
#2 0xf01013e5 in db_panic (dummy1=-202084920, dummy2=0, dummy3=-1,
dummy4=0xf3c92a60 "") at ../../ddb/db_command.c:440
#3 0xf01012d5 in db_command (last_cmdp=0xf01bbac4, cmd_table=0xf01bb914,
aux_cmd_tablep=0xf01df234) at ../../ddb/db_command.c:337
#4 0xf0101452 in db_command_loop () at ../../ddb/db_command.c:462
#5 0xf0103b43 in db_trap (type=12, code=0) at ../../ddb/db_trap.c:71
#6 0xf017f1e1 in kdb_trap (type=12, code=0, regs=0xf3c92ba0)
at ../../i386/i386/db_interface.c:158
#7 0xf0189caf in trap_fatal (frame=0xf3c92ba0) at ../../i386/i386/trap.c:808
#8 0xf0189758 in trap_pfault (frame=0xf3c92ba0, usermode=0)
at ../../i386/i386/trap.c:706
#9 0xf01893bf in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = -261512882,
tf_esi = -261512882, tf_ebp = -204919792, tf_isp = -204919864,
tf_ebx = -260967680, tf_edx = -261640192, tf_ecx = 0, tf_eax = 301390,
tf_trapno = 12, tf_err = 0, tf_eip = -202084920, tf_cs = 8,
tf_eflags = 66198, tf_esp = -260967680, tf_ss = -260960512})
at ../../i386/i386/trap.c:345
#10 0xf3f46dc8 in ?? ()
#11 0xf3f448e8 in ?? ()
#12 0xf012e824 in vfs_cache_lookup (ap=0xf3c92e28) at vnode_if.h:55
#13 0xf013032d in lookup (ndp=0xf3c92ea8) at vnode_if.h:31
#14 0xf012fe1c in namei (ndp=0xf3c92ea8) at ../../kern/vfs_lookup.c:154
#15 0xf0134a2c in stat (p=0xf067bc00, uap=0xf3c92f84)
at ../../kern/vfs_syscalls.c:1552
#16 0xf0189f79 in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = -272659648,
tf_esi = -272659136, tf_ebp = -272659736, tf_isp = -204918828,
tf_ebx = -272661784, tf_edx = 407830, tf_ecx = 407944, tf_eax = 188,
tf_trapno = 22, tf_err = 7, tf_eip = 537570533, tf_cs = 31,
tf_eflags = 642, tf_esp = -272661920, tf_ss = 39})
at ../../i386/i386/trap.c:962
#17 0x200aace5 in ?? ()
#18 0x21c4a in ?? ()
#19 0x22742 in ?? ()
#20 0x203ea in ?? ()
#21 0x2f2ae in ?? ()
#22 0x165c7 in ?? ()
#23 0x16215 in ?? ()
#24 0x1333f in ?? ()
#25 0x3a69 in ?? ()
#26 0x2df5 in ?? ()
#27 0x10e8 in ?? ()
(kgdb) q
--
In theory, theory is better than practice. In practice, it isn't.
James Raynard, Edinburgh, Scotland. http://www.freebsd.org/~jraynard/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971115143921.07053>
