From owner-freebsd-smp Thu Jul 22 15:21:49 1999 Delivered-To: freebsd-smp@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (Postfix) with ESMTP id 71BA915616 for ; Thu, 22 Jul 1999 15:21:25 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id PAA88210; Thu, 22 Jul 1999 15:20:22 -0700 (PDT) (envelope-from dillon) Date: Thu, 22 Jul 1999 15:20:22 -0700 (PDT) From: Matthew Dillon Message-Id: <199907222220.PAA88210@apollo.backplane.com> To: "Christopher W. Banek" Cc: freebsd-smp@FreeBSD.ORG Subject: Re: Page Fault Problems with SMP kernel in 3.2-RELEASE References: Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org :Hi. I am a a bit new to FreeBSD, came over from linux, but here is what :is happening. I installed 3.2-RELEASE and everything went fine. I :compilied an SMP kernel and now it page faults when ever I am doing :something system intensive. It happens during configure scripts, but not :when I do a make. But if I do a make -j2, it crashes quickly. : :Oh yeah, I have a GA-686LX2 with Dual PII/333 and 128MB of Ram. There's a good chance the problem has been fixed in FreeBSD-STABLE (i.e. changes made since the 3.2 release), but it's hard to tell from the information you provided. There are two ways to get additional information: * Try to get the kernel to generate a kernel core dump This involves having a swap area that is at least as large as main memory. Setting the dumpdev in /etc/rc.conf correctly. If you have IDE disks it might be something like I show below. Note that you have to be careful to specify the correct partition name. Swap partitions almost always end with 'b'. dumpdev="/dev/wd0b" Ensuring that /var/crash exists and has enough free space to hold the dump (at least as much space as you have main memory, plus a couple of megabytes more). You can make /var/crash a softlink to some other partition if /var doesn't have enough space. For example you can create a /usr/crash and then remove /var/crash and create a softlink 'ln -s /usr/crash /var/crash'. Once these changes are made and you reboot, the next time the machine crashes it should be able to generate a kernel core. You can then gdb the core like this: cd /var/crash ls -la gdb -k kernel.0 vmcore.0 (or whatever the names wind up being) back (to get a backtrace) * Recompile the kernel with the DDB option turned on. Now when the kernel crashes it will drop into a DDB> prompt and you should be able to do a 'trace' to get a call stack backtrace from which we may be able to get more information. (Then type 'panic' and hit return a couple of times to panic the system). Recompiling the kernel for someone who has never done it before can take a bit of work. If the problem has already been solved you will have to learn how to download the latest source dist in order to recompile a new kernel. Take a look at the FreeBSD documentation, especially the handbook. See http://www.freebsd.org/ -Matt Matthew Dillon :Here is the exact error message. : :Fatal trap 12: page fault while in kernel mode :mp_lock = 01000002; cpuid=1; lapic.id=01000000 :fault virtual address = 0x2b :fault code = supervisor read, page not present :instruction pointer = 0x8:0xc01cb3ab :stack pointer = 0x10:0xc4a41e40 :frame pointer = 0x10:0xc4a41e4c :code segment = base 0x0, limit 0xfffff, type ox1b : = DPL 0, pres1, def32, gran 1 :processor eflags - interrupt enabled, resume,IOPL = 0 :current process = 2800 (sh) :inturrupt mask = net tty bio cam <- SMP: XXX :trap number = 12 :panic: page fault :mp_lock = 01000002; cpuid = 1; lapic.id = 01000000 :boot() called on cpu#1 : : :Thanks for any help you guys can provide. :Christopher Banek : : : : :To Unsubscribe: send mail to majordomo@FreeBSD.org :with "unsubscribe freebsd-smp" in the body of the message : To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message