title: Mapping of ZONE_HIGHMEM in kernel address space in 32bit x86
body: <p>In a system with 3:1 split, the ZONE_NORMAL with a size of 896MB is permanently mapped to the kernel address space.This leaves a 128MB free space in the Kernel address space and according to my understanding, the ZONE_HIGHMEM pages are mapped temporarily to this 128MB part. If the system actually had a 4GB physical memory you will be mapping(not smultaneously) the HIHGMEM part- which is roughly 3.2GB - to this 128MB part. If that was the case Kernel would have to frequently access HIHGMEM which implicates a frequent change in temporaty mapping and that in my view is a penalty. So what was the reason why ZONE_NORMAL fixed at 896MB and not something really lower?</p>