I have gathered this much.
“High Memory is memory for which logical addresses do not exist, because it is beyond the address range set aside for kernel virtual addresses.”
It seems to me there would be overhead for creating mappings to high memory. Is high memory a set area in the physical mem of the machine? Where does it start and end, typically?
And most importantly – why have it at all? Why not have the normal 3 GB/ 1 GB split with mappings/kernel code in that 1 GB?
there might be more memory available than what the CPU is currently able to address. The same limit exists for an userland process that is able to address only a subset of the memory according to its mapping table. Look at PAE extensions for example, you can have up to 64GB of RAM but the kernel or any process can access only up to 4GB of memory.