Hi Hayfeng, On Tue, Apr 6, 2010 at 8:07 PM, hayfeng Lee <teklife.kernel@xxxxxxxxx> wrote: > hello,every one. > I have a question: > Why does linux choose 896MB to do a start point of ZONE_HIGHMEM and > the end point of ZONE_NORMAL. Just for experience? > What is the advantages? This is not an advantage but a limitation of 32 bit processor and architecture. Only physical memory in first 896MB is directly mapped to the kernel virtual memory address space. This is called ZONE_NORMAL. To access any physical memory in ZONE_HIGHMEM, the kernel has to set up page table entries to indirectly map the physical memory into a virtual memory address (I think around 128MB or so worth page table entries are reused for this purpose). On the other hand, on 64 bit architectures, the entire physical memory is directly mapped and accessible to the kernel. ZONE_HIGHMEM doesn't exist on 64 bit. Take the above with a grain of salt, someone with a better knowledge about this intrusive topic can be give a more detailed explanation :) Hope this helps, thanks, -Joel -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ