Timothy> My question is: Why can't we just shrink the kernel
Timothy> address space by that same amount, allowing the kernel
Timothy> address space plus the extra to fit into 1GB?
If you have 1 GB of memory and want to map it all into the kernel's
address space and the kernel has only 1 GB of address space total,
then there is no room for anything else (such as address space to
ioremap memory-mapped peripherals or space for vmalloc allocations).
Therefore, if you want to have 1 GB of RAM mapped linearly into the
kernel's address space, you need strictly more than 1 GB of kernel
address space. In practice, 1.25 GB of kernel address space (a
PAGE_OFFSET value of 0xb0000000) works well with 1 GB of RAM. That's
what I run on my main desktop machine with 1 GB of RAM to avoid HIGHMEM.
- Roland