Date: Thu, 24 Oct 2002 17:18:59 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: Terry Lambert <tlambert2@mindspring.com> Cc: current@freebsd.org Subject: Re: page fault while in vm86 mode Message-ID: <20021024171859.3b05571b.Alexander@Leidinger.net> In-Reply-To: <3DB076F2.FB650CD7@mindspring.com> References: <20021018121229.1bff0d43.Alexander@Leidinger.net> <3DB076F2.FB650CD7@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 18 Oct 2002 14:02:42 -0700 Terry Lambert <tlambert2@mindspring.com> wrote: > Alexander Leidinger wrote: > > Fatal trap 12: page fault while in vm86 mode > ^ > | > a page fault > > > #4 0xc0265055 in trap_pfault (frame=0xc0545fa8, usermode=0, eva=803202) > ^ ^ ^ > | | | > | | On a user address > | In kernel mode > A trap from kernel code Ok, now with a Aug 22 kernel instead of an Aug 8 kernel: ---snip-- Fatal trap 12: page fault while in vm86 mode fault virtual address = 0xc4182 fault code = user read, page not present instruction pointer = 0xc000:0x4182 stack pointer = 0x0:0xfc0 frame pointer = 0x0:0x0 code segment = base 0x0, limit 0x0, type 0x0 = DPL 0, pres 0, def32 0, gran 0 processor eflags = interrupt enabled, resume, vm86, IOPL = 0 current process = 27349 (XFree86) trap number = 12 panic: page fault Uptime: 14h31m0s pfs_vncache_unload(): 1 entries remaining Dumping 639 MB (kgdb) bt #0 doadump () at ../../../kern/kern_shutdown.c:225 #1 0xc01a1712 in boot (howto=260) at ../../../kern/kern_shutdown.c:356 #2 0xc01a1b2d in panic (fmt=0xc02b8bc0 "%s") at ../../../kern/kern_shutdown.c:509 #3 0xc02704b7 in trap_fatal (frame=0xc0540fa8, eva=803202) at ../../../i386/i386/trap.c:847 #4 0xc027026d in trap_pfault (frame=0xc0540fa8, usermode=0, eva=803202) at ../../../i386/i386/trap.c:761 #5 0xc026fe9b in trap (frame= {tf_fs = 0, tf_es = 0, tf_ds = 0, tf_edi = 19158, tf_esi = 19182, tf_ebp = 0, tf_isp = -1068232748, tf_ebx = 13, tf_edx = 980, tf_ecx = 12, tf_eax = 13, tf_trapno = 12, tf_err = 4, tf_eip = 16770, tf_cs = 49152, tf_eflags = 721410, tf_esp = 4032, tf_ss = 0}) at ../../../i386/i386/trap.c:447 (kgdb) up 4 #4 0xc027026d in trap_pfault (frame=0xc0540fa8, usermode=0, eva=803202) at ../../../i386/i386/trap.c:761 761 trap_fatal(frame, eva); (kgdb) list 756 PCPU_GET(curpcb) != NULL && 757 PCPU_GET(curpcb)->pcb_onfault != NULL) { 758 frame->tf_eip = (int)PCPU_GET(curpcb)->pcb_onfault; 759 return (0); 760 } 761 trap_fatal(frame, eva); 762 return (-1); 763 } 764 765 /* kludge to pass faulting virtual address to sendsig */ (kgdb) ---snip--- > > This doesn't look much to me. I'm used to see more frames here. What can I do > > do debug this further? > > You can load up gdb, and decode all the variables in the trap_pfault() > function, so that we can tell which code path resulted in the problem. > > Specifically, we need to know whether: > > o Which map vm->vm_map refers to? (kgdb) print vm $1 = (struct vmspace *) 0x104 (kgdb) print vm->vm_map ---Can't read userspace from dump, or kernel process--- (kgdb) print *vm ---Can't read userspace from dump, or kernel process > o Whether vm_fault failed? (kgdb) print rv $4 = 1 > o The value of 'map' and the value of 'kmem_map' and 'kernel_map'? (kgdb) print map $5 = (struct vm_map *) 0x1 (kgdb) print kmem_map $6 = 0xc0834078 (kgdb) print kernel_map $7 = 0xc0834000 > o The value of p->p_lock (kgdb) print p $8 = (struct proc *) 0xc55ef8c0 (kgdb) print p->p_lock $9 = 0 '\0' > o The value of td->td_intr_nesting_level == 0 (kgdb) print td No symbol "td" in current context. > o If PCPU_GET(curpcb) is non-NULL How do I do this with gdb? > o If so, if PCPU_GET(curpcb)->pcb_onfault is non-NULL Bye, Alexander. -- The three Rs of Microsoft support: Retry, Reboot, Reinstall. http://www.Leidinger.net Alexander @ Leidinger.net GPG fingerprint = C518 BC70 E67F 143F BE91 3365 79E2 9C60 B006 3FE7 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021024171859.3b05571b.Alexander>