I must be guilty of not explaining clearly. Suppose you have the following
physical memory map:
0: 128 MB
8000,0000: 128 MB
1,0000,0000: 128 MB
1,8000,0000: 128 MB
2,0000,0000: 128 MB
2,8000,0000: 128 MB
3,0000,0000: 128 MB
3,8000,0000: 128 MB
The total is 1 GB of installed ram. Yet the kernel's 1G virtual space,
can only handle 128 MB of it. The rest falls out of the addressable range and
has to be handled as highmem, that is if you preserve the linear relationship
between kernel virtual memory and physical memory, as config_discontigmem does.
Even if you go to 2G of kernel memory (restricting user space to 2G of virtual)
you can only handle 256 MB.
By using config_nonlinear, the kernel can directly address all of that memory,
giving you the full 800MB or so to work with (leaving out the kmap regions etc)
as zone_normal.
-- Daniel - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/