Date: Thu, 9 Feb 2006 11:21:39 +0200 From: Jacques Fourie <jf@trispen.com> To: freebsd-hackers@freebsd.org Subject: Re: Pre-loaded mfsroot size and FreeBSD 4.9 with 4G RAM Message-ID: <20060209092139.GB21718@trispen.com> In-Reply-To: <20060208185836.GA55307@xor.obsecurity.org> References: <20060208164141.GA21718@trispen.com> <20060208185836.GA55307@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 08, 2006 at 01:58:36PM -0500, Kris Kennaway wrote: > On Wed, Feb 08, 2006 at 06:41:41PM +0200, Jacques Fourie wrote: > > Hi, > > > > I am pre-loading an image (used as MFS root) from the boot loader on FreeBSD > > 4.9 by using 'load -t mfs_root mfsroot' in loader.conf. The size of this > > image is 64M. If I have 4G of RAM in the machine, the 64M size causes the > > kernel to panic almost immediately. With only 2G of RAM the kernel boots > > without a problem. I have tried to increase the KVA_PAGES value to 512 but > > the kernel still panics. If I decrease the image size to 40M the kernel > > boots successfully on a machine with 4G of RAM. Any ideas as to how I can go > > about finding (or fixing) this problem? > > Start by showing the panic ;-) > > Kris Hi, Here is the kernel panic :). The kernel was compiled with 'makeoptions DEBUG=-g' and DDB was included in the kernel. Unfortunately the stack trace from DDB does not seem to show any symbols. I've created this panic by installing FreeBSD 4.11-RELEASE with a GENERIC kernel that has 'makeoptions DEBUG=-g' and DDB included. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Fatal trap 12: page fault while in kernel mode fault virtual address = 0xbff1e000 fault code = supervisor write, page not present instruction pointer = 0x8:0xc03afa66 stack pointer = 0x10:0xc4589f88 frame pointer = 0x10:0xc4589f90 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 = Idle interrupt mask = net tty bio cam kernel: type 12 trap, code=0 Stopped at 0xc03afa66: movl %eax,0xbfc00000(,%edx,4) db> t (null)(c4dac000,f3cd2000,f76f0000,3,c0497f14) at 0xc03afa66 (null)(458e000,f7f78000,c45ac000,c4589ff8,c023051c) at 0xc0363027 (null)(0,4586c00,458e000,0,c0132e2d) at 0xc035c313 (null)(0,0,0,0,0) at 0xc023051c (null)() at 0xc0132e2d db> Here is the output from a 'gdb -k' session on the kernel in question : # cd /usr/src/sys/compile/TEST # gdb -k kernel.debug GNU gdb 4.18 (FreeBSD) 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"...Deprecated bfd_read called at /usr/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 2627 in elfstab_build_psymtabs Deprecated bfd_read called at /usr/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 933 in fill_symbuf (kgdb) list *(0xc03afa66) 0xc03afa66 is in pmap_map (../../i386/i386/pmap.c:799). 794 pmap_kenter(vm_offset_t va, vm_paddr_t pa) 795 { 796 pt_entry_t *pte; 797 798 pte = vtopte(va); 799 *pte = pa | PG_RW | PG_V | pgeflag; 800 invltlb_1pg(va); 801 } 802 803 /* (kgdb) list *(0xc0363027) 0xc0363027 is in vm_page_startup (../../vm/vm_page.c:296). 291 /* 292 * Validate these addresses. 293 */ 294 295 new_end = trunc_page(end - page_range * sizeof(struct vm_page)); 296 mapped = pmap_map(mapped, new_end, end, 297 VM_PROT_READ | VM_PROT_WRITE); 298 299 /* 300 * Clear all of the page structures (kgdb) list *(0xc035c313) 0xc035c313 is in vm_mem_init (../../vm/vm_init.c:108). 103 * Initializes resident memory structures. From here on, all physical 104 * memory is accounted for, and we use only virtual addresses. 105 */ 106 107 vm_set_page_size(); 108 virtual_avail = vm_page_startup(avail_start, avail_end, virtual_avail); 109 /* 110 * Initialize other VM packages 111 */ 112 vm_object_init() regards, jacques
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060209092139.GB21718>