Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Aug 2008 13:04:54 GMT
From:      David Naylor <naylor.b.david@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/126972: kernel fails to load with a big mfs image
Message-ID:  <200808301304.m7UD4scP028486@www.freebsd.org>
Resent-Message-ID: <200808301310.m7UDA22c033489@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         126972
>Category:       misc
>Synopsis:       kernel fails to load with a big mfs image
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 30 13:10:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     David Naylor
>Release:        8-Current
>Organization:
Private
>Environment:
FreeBSD dragonmini.dg 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Tue Aug 26 20:30:23 SAST 2008     root@dragonmini.dg:/tmp/usr/src/sys/GENERIC  i386
>Description:
The kernel fails to boot when loading a big mfs image at boot time.  This problem does not appear on amd64.  Changing vm.kmem_size and vm.kmem_size_max to 512MiB does not help.  Although in this case the mfs image is compressed I do not think it changes anything.
>How-To-Repeat:
Create a big file and load it on boot...

Add the following to loader.conf:
dragonroot_load="YES"
dragonroot_type="mfs_root"
dragonroot_name="/boot/dragonroot"

where /boot/dragonroot is a big file...

(please see attached for the output [via serial] and the backtrace)
>Fix:


Patch attached with submission follows:

OK ls -l boot/
boot/
 d      512 zfs
 d      512 firmware
 d      512 kernel
 d      512 modules
 d      512 defaults
       8192 boot
        512 boot1
       7680 boot2
       1201 cdboot
       7551 gptboot
     249856 loader
      15219 loader.help
       7545 loader.4th
      36462 support.4th
        692 screen.4th
       2249 frames.4th
       7636 beastie.4th
        385 loader.rc
     251904 pxeboot
       1776 device.hints
        406 loader.conf
        512 mbr
        512 pmbr
        512 boot0
        512 boot0sio
   95251544 dragonroot.gz
OK show vm.kmem_size
512M
OK show vm.kmem_size_max
512M
OK boot
/boot/kernel/acpi.ko text=0x521cc data=0x2640+0x182c syms=[0x4+0x8b80+0x4+0xbe19]
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
1048576K of memory above 4GB ignored
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #0: Wed Aug 27 23:13:13 SAST 2008
    root@dragonmini.dg:/tmp/usr/src/sys/GENERIC
WARNING: WITNESS option enabled, expect reduced performance.


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xbff1e000
fault code              = supervisor write, page not present
instruction pointer     = 0x20:0xc0a82bdb
stack pointer           = 0x28:0xc7020cf0
frame pointer           = 0x28:0xc7020d08
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         = 0 ()
[thread pid 0 tid 0 ]
Stopped at      pmap_map+0x2d:  movl    %eax,PTmap(,%edx,4)
db> bt
Tracing pid 0 tid 0 td 0xc0c608a0
pmap_map(c7020d64,bcc98000,bff98000,3,c7445000,...) at pmap_map+0x2d
vm_page_startup(c748e000,a,c7020d88,c075e76e,0,...) at vm_page_startup+0x27f
vm_mem_init(0,701ec00,701ec00,701e000,7025000,...) at vm_mem_init+0x18
mi_startup() at mi_startup+0x90
begin() at begin+0x2c
db>


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808301304.m7UD4scP028486>