750/HIGHMEM/INITRD/1GB...
sjhill at realitydiluted.com
sjhill at realitydiluted.com
Tue Aug 10 01:43:13 EST 2004
Greetings.
I am attempting to get HIGHMEM working on a 750Cxe based board that
has 1GB of physical memory. I am able to access 768MB of it just fine
without using HIGHMEM. I am currently using an INITRD and that appears
to be where it crashes when HIGHMEM is enabled. First, I use the
default config values:
CONFIG_HIGHMEM_START=0xfe000000
# CONFIG_LOWMEM_SIZE_BOOL is not set
CONFIG_LOWMEM_SIZE=0x30000000
# CONFIG_KERNEL_START_BOOL is not set
CONFIG_KERNEL_START=0xc0000000
# CONFIG_TASK_SIZE_BOOL is not set
CONFIG_TASK_SIZE=0x80000000
# CONFIG_BOOT_LOAD_BOOL is not set
CONFIG_BOOT_LOAD=0x00800000
The boot messages show things okay:
Total memory = 1024MB; using 2048kB for hash table (at c0400000)
Linux version 2.6.7 (sjhill at twinkie) (gcc version 3.4.1)
On node 0 totalpages: 262144
DMA zone: 196608 pages, LIFO batch:16
Normal zone: 0 pages, LIFO batch:1
HighMem zone: 65536 pages, LIFO batch:16
Built 1 zonelists
...
Memory: 1032704k available (1520k kernel code, 584k data, 272k init,
262144k hi)
...
The fun starts when we attempt to utilize the INITRD:
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
kernel BUG in kmap_atomic at include/asm/highmem.h:91!
Oops: Exception in kernel mode, sig: 5 [#1]
NIP: C0034920 LR: C00348EC SP: EFFADD90 REGS: effadce0 TRAP: 0700 Not taintedMSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = effaf900[1] 'swapper' THREAD: effac000Last syscall: 120
GPR00: FE4035A9 EFFADD90 EFFAF900 00000004 000003DF FFFFFFFF 00000000 0000000D
GPR08: C0220000 00000001 00000000 FE4035A8 EFFE3F54 03DEC206 00000000 EFFBDA08
GPR16: C0220000 EFFADDF8 00001000 EFFD07E0 00000000 EFFADE04 EFFBD9E0 00000001
GPR24: C0904000 00001000 00000000 00000000 EFFD087C C12F7FE0 C12F7FE0 00000000
NIP [c0034920] generic_file_aio_write_nolock+0x75c/0xd54
LR [c00348ec] generic_file_aio_write_nolock+0x728/0xd54
Call trace:
[c0035044] generic_file_write_nolock+0x4c/0x94
[c00351d0] generic_file_write+0x5c/0xe8
[c00540e8] vfs_write+0x114/0x13c
[c00541bc] sys_write+0x3c/0x70
[c01e1cd0] populate_rootfs+0xc4/0x10c
[c0003994] init+0x28/0x22c
[c00092c8] kernel_thread+0x44/0x60
The 'kmap_atomic' call that is failing is inside of the inlined function:
mm/filemap.c(1605):filemap_copy_from_user
Are there some known issues with using INITRD and HIGHMEM together that
I should be aware of? Thanks.
-Steve
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list