[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACqU3MXMAP-7LtVWHENNAQSS+B0c5qVcdWq=4NFGNACxkTRYzg@mail.gmail.com>
Date: Tue, 6 Dec 2011 02:23:26 -0500
From: Arnaud Lacombe <lacombar@...il.com>
To: x86@...nel.org, LKML <linux-kernel@...r.kernel.org>
Subject: x86-32 PAE-enabled kernel fails to boot with 64GB of RAM
Hi,
I've been playing a bit with PAE and 3.2-rc3 this evening and found
out to be unable to use the full 64GB address space. More precisely,
the attached config, fails to detect the disk correctly:
excerpt from `dmesg.64GB.txt' (bad):
scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 0.14 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 107856 512-byte logical blocks: (55.2 MB/52.6 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't
support DPO or FUA
sda: unknown partition table
sd 0:0:0:0: Attached scsi generic sg0 type 0
excerpt from `dmesg.16GB.txt' (good):
scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 0.14 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 107856 512-byte logical blocks: (55.2 MB/52.6 MiB)
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't
support DPO or FUA
sda: sda1 sda2
The theoretical use-case I would think about is a machine running an
x86-64 kernel with +64GB of RAM, but used to boot an x86-32 kernel
every once in a while to do some work. I would naively expect such a
PAE-enabled kernel to be limited to 64GB of RAM, but still be
functional.
The command used to trigger the issue is:
# qemu -nographic \
-mem-prealloc -mem-path $PWD/ramdisk -m 128G \
-kernel arch/x86/boot/bzImage \
-append 'root=/dev/sda2 rootfstype=ext4 rootwait console=ttyS0
init=/etc/preinit loglevel=8' \
-hda openwrt-x86-generic-combined-ext4.img
any hints ?
Thanks,
- Arnaud
ps: instability starts to appear consistently above 65000MB of RAM, at
65025MB, the kernel BUG() on the following:
PCI: Using ACPI for IRQ routing^M
PCI: pci_cache_line_size set to 32 bytes^M
reserve RAM buffer: 000000000009f400 - 000000000009ffff ^M
reserve RAM buffer: 00000000dfffd000 - 00000000dfffffff ^M
reserve RAM buffer: 0000001000100000 - 0000001003ffffff ^M
BUG: unable to handle kernel paging request at 1f90c2f2^M
IP: [<c1003cbf>] print_context_stack+0x6e/0x8d^M
*pdpt = 0000000000000000 *pde = 0000000000000000 ^M
Thread overran stack, or stack corrupted^M
Oops: 0000 [#1] DEBUG_PAGEALLOC^M
Modules linked in:^M
^M
Pid: 1, comm: swapper Not tainted 3.2.0-rc3 #5 Bochs Bochs^M
EIP: 0060:[<c1003cbf>] EFLAGS: 00000097 CPU: 0^M
EIP is at print_context_stack+0x6e/0x8d^M
EAX: ffffe000 EBX: 1f90c2f2 ECX: 00000000 EDX: 1f90c2f2^M
ESI: 00000000 EDI: 00000000 EBP: d748c118 ESP: d748c0f8^M
DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068^M
Process swapper (pid: 1, ti=d748a000 task=d7490000 task.ti=d748c000)^M
Stack:^M
00000000 ffffe000 1f90dffc c100981f 1f90c000 1f90c2f2 00000000 c1212998^M
d748c148 c100321a c1212998 d748c168 00000000 d748c134 1f90c000 00000000^M
c106a857 d748c168 c14864ad 00000044 d748c160 c10097ae 00000000 c1212998^M
Call Trace:^M
[<c100981f>] ? save_stack_address_nosched+0x15/0x15^M
[<c100321a>] dump_trace+0x78/0xa5^M
[<c106a857>] ? check_bytes_and_report+0x21/0xa7^M
[<c14864ad>] ? __reserve_region_with_split+0x5d/0xd0^M
[<c10097ae>] save_stack_trace+0x1c/0x38^M
[<c106a00b>] set_track+0x48/0xa3^M
[<c1208298>] free_debug_processing+0xe9/0x15a^M
[<c14864ad>] ? __reserve_region_with_split+0x5d/0xd0^M
[<c12083dc>] __slab_free+0x35/0x1c4^M
[<c14864ad>] ? __reserve_region_with_split+0x5d/0xd0^M
[<c103cac3>] ? mark_held_locks+0x59/0x77^M
[<c106a0ff>] ? slab_free_hook+0x33/0x3a^M
[<c103cbf4>] ? trace_hardirqs_on_caller.part.19+0xab/0xdb^M
[<c106a0ff>] ? slab_free_hook+0x33/0x3a^M
[<c103cc87>] ? trace_hardirqs_on_caller+0x63/0x66^M
[<c106b81b>] kfree+0x9b/0xa4^M
[<c106b81b>] ? kfree+0x9b/0xa4^M
[<c14864ad>] ? __reserve_region_with_split+0x5d/0xd0^M
[<c14864ad>] ? __reserve_region_with_split+0x5d/0xd0^M
[<c14864ad>] __reserve_region_with_split+0x5d/0xd0^M
[<c1486515>] __reserve_region_with_split+0xc5/0xd0^M
but I would assume that such memory value (odd, non-multiple of 4 or
8) is not supported.
View attachment "config.txt" of type "text/plain" (37326 bytes)
View attachment "dmesg.16GB.txt" of type "text/plain" (13150 bytes)
View attachment "dmesg.64GB.txt" of type "text/plain" (12964 bytes)
Powered by blists - more mailing lists