[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#584846: linux-2.6: Detects only 64MB and fails to boot on Intel Green City board if e820 hooked by GRUB2



Package: linux-2.6
Severity: normal

In the course of other testing, I need to boot systems using GRUB2 from 
a USB drive.  To support systems that can't find their boot drive if the
drive numbering changes, I use GRUB2's drivemap command like this:

set root=(hd1)
drivemap (hd0) (hd1)
chainloader +1
boot

This results in GRUB2 hooking the e820 interrupt to reserve memory for
its hook of the BIOS disk interrupt.  However, note that this problem
*also* occurs if GRUB2 hooks e820 and does not run drivemap (part of the
testing involves allocating persistent memory for other purposes).

This works fine with most OSes.  It works with the Linux 2.6.26 kernel 
shipped in Lenny (specifically, linux-image-2.6.26-2-amd64 version 
2.6.26-22lenny1).  However, if I try it with 2.6.32, as shipped in
unstable or backports, it fails to boot.  From what I can see of the
boot messages, and from the rare occasions when it manages to give me a
shell in the initramfs with a working keyboard, it looks like Linux only
detects 64MB of memory, goes nuts with the OOM killer on processes
essential to booting (udev, for instance), and usually ends by panicing
because it can't find something to kill.  (Not surprising when booting a
16-way or 24-way SMP system with only 64MB of RAM.)

I've manually verified the e820 map provided by the GRUB2-hooked 
interrupt (after booting a kernel that *does* boot), and it looks 
perfectly correct; thus, I don't think the problem lies in GRUB2, but in 
the kernel.

Given the nature of the problem, it proves fairly difficult to extract
the boot messages, but I can try to gather more information if you have 
a suggestion for what to look for.  I may be able to bisect this in the 
future.

- Josh Triplett

-- System Information:
Debian Release: 5.0.4
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-bpo.3-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash



Reply to: