Hi... On Mon, May 4, 2009 at 6:44 PM, Marcos Roriz <marcosrorizinf@xxxxxxxxx> wrote: > The ZONE_NORMAL zone refer only to kernel direct memory mapped, that means > only to kernel pages and kernel programs (such as daemons)? as the name implies, it means a memory area where kernel can directly address it without a need to do temporary mapping. For the user space programs, it has somewhat loose connection. When kernel try to serve memory request from user space, it could get free pages from either zone normal or highmem (depending on the priority). Once these oages are "connected " to user space via PTE (page table entry), they are directly accessible by user space program. > Why is the ZONE_NORMAL so large (896 MB)? How to deal with low memory > systems? first of all, you need to understand the default virtual memory split for x86 32 bit system, that is 3:1. Meaning, user mode has 3 GB, while kernel has 1 GB. Inside this 1GB address space, not all address range can be used. Some of them are used for temporary mapping, vmalloc mapping and so on. Short story, you're left with 896 MB address space. For low memory system, the address space is still 1 GB. But in reality, only a little is used to map the RAM. So in hand we have large address space, but it doesn't mean all those addresses are used. > The ZONE_HIGHMEM zone refer to kernel not mapped directly, so that includes > userspace programs right? Kindly refer to my explanations above :) Again, user space program doesn't really care about zone normal or highmem. regards, Mulyadi. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ