UML fails to locate address space

From: Tom Spink
Date: Tue May 20 2008 - 07:08:36 EST


I've just recently pulled the latest GIT and compiled UML, however,
when I run it a message appears saying "Locating the top of the
address space... Address 0x0 no good?" and the program exits.

After some digging, it appears that page_ok is returning false when
checking 'bottom', in os_get_task_size
(arch/um/os-Linux/sys-i386/task_size.c:96). After running through
GDB, it seems that in line 31 of that file is where the segfault

n = *address;

i.e. when trying to read from the address space (at address zero).

Here is GDB's output:

Program received signal SIGSEGV, Segmentation fault.
0x0806d993 in page_ok (page=0) at arch/um/os-Linux/sys-i386/task_size.c:31
31 n = *address;
(gdb) bt
#0 0x0806d993 in page_ok (page=0) at arch/um/os-Linux/sys-i386/task_size.c:31
#1 0x0806daf8 in os_get_task_size () at
#2 0x0804ac7f in linux_main (argc=5, argv=0xbfe438a4) at
#3 0x0804b82f in main (argc=5, argv=0xbfe438a4, envp=0xbfe438bc) at

As I mentioned, this is the latest git, running on a 32-bit x86 with
Ubuntu stock kernel 2.6.24-17. As a quick hack, I manually got the
function to return ~3Gb, and UML continued to boot. Any ideas, or any
more information you need?

(I've CCed Jeff Dike, as I saw it was his patch that introduced this code)

Tom Spink
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at