kernel panic with greater that 8 GB of memory

Steve Kargl sgk at
Tue Nov 30 10:35:56 PST 2004

On Tue, Nov 30, 2004 at 06:04:56AM -0700, Scott Long wrote:
> Steve Kargl wrote:
> >On Mon, Nov 29, 2004 at 01:13:41PM -0800, Steve Kargl wrote:
> >
> >>kmem_suballoc: bad status return of 3
> >>panic: kmem_suballoc
> >>cpuid = 0
> >>KDB: stack backtrace:
> >>kdb_backtrace() at kdb_backtrace+0x37
> >>panic() at painc+0x1d1
> >>kmem_suballoc() at kmem_suballoc+0x93
> >>kmeminit() at kmeminit+0x16d
> >>mi_startuup() at mi_startup+0xb6
> >>btext90 at btext+0x2c
> >>KDB: enter: panic
> >>[thread pid 0 tid 0]
> >>
> >>This is a Tyan K8S Pro motherboard with 16 GB of PC2700
> >>Cosair ECC memory.  The BIOS was flashed to the latest
> >>available from Tyan.  The scheduler is 4BSD.  There are
> >>no ATA devices in the system and no ATA subsystem in
> >>the kernel.  This a SCSI only box.   World and kernel
> >>were rebuilt today with CFLAGS=-O -pipe and
> >>COPTFLAGS=-O -pipe.
> >>
> >>If I set hw.physmem="#G" n /boot/loader.conf where # is
> >>less than or equal to 8 the box boots up (see dmesg below).
> >>If # > 8, then we have the above panic.
> >>
> >>Any ideas where to look for the a fix?
> >>
> >
> >(dmesg snipped)
> >(CC'd to -current because the may impact any system with >8 GB of ram)
> >
> >As a data point, I've downloaded, burned, and booted the netbsd/amd64
> >ISO image.  Netbsd's dmesg shows that netbsd correctly finds 16 GB
> >of memory on the system.  
> >
> I fixed this on i386 a few months ago, and I applied a similar fix to
> amd64 on the advice of Peter Wemm.  Go beat him up on this one =-)

Well, I have more data and Peter advice may have been correct.
>From the beastie menu :-O, I dropped to the loader prompt.  If
I do

set hint.acpi.0.disabled="1"
set hw.phymem="6G"

The system boots up fine (although I thought AMD64 required acpi).
Next, if I do 

set hint.acpi.0.disabled="1"
set hw.phymem="16G"

The system starts to boot and dmesg reports the 16 GB of memory, but
I rapidly get this panic.

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0xffffffff80af6a80
fault code            = supervisor read, page not present
instruction pointer   = 0x8:0xffffffff802a5814
stack pointer         = 0x10:0xffffffff80728a30
code segment          = base 0x0, limit 0xfffff, type 0x1b
                      = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags      = resume, IOPL = 0
current process       = 0 (swapper)
[thread pid 0 tid 0]
Stopped at isitmychild+0x4:    decl %eax

db> trace
isitmychild() at isitmychild+0x4
isitmydescendant() at isitmydescendant+0x16
witness_checkorder() at witness_checkorder+0x44a
_mtx_lock_flags() at _mtx_lock_flags+0x7a
lim_hold() at lim_hold+0x29
fork1() at fork1+0xaa0
kthread_create() at kthread_create+0xa3
ktrace_init() at ktrace_init+0xe4
mi_startup() at mi_startup+0xb6

So, it looks like ACPI on this Tyan motherboard is restricting
the memory to 8G.


More information about the freebsd-amd64 mailing list