Memory Concepts [+Newbie]
I'm reading Mel Gorman Understating the Linux Virtual Memory Manager and also TANENBAUM Modern Operating System I don't get some basic concepts of the Memory Management in Linux Kernel.
The first question is, what is a memory bank, It's not clear if its a physical section of the memory of if its a chip (physical) itself.
The ZONE_NORMAL zone refer only to kernel direct memory mapped, that means only to kernel pages and kernel programs (such as daemons)?
Why is the ZONE_NORMAL so large (896 MB)? How to deal with low memory systems?
The ZONE_HIGHMEM zone refer to kernel not mapped directly, so that includes userspace programs right?
I googled and searched for all those answers but couldn't find a direct and consistent answer, thats why I'm asking for your guys help.
Thanks very much for you time,
Marcos Roriz
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Hi Marcos,
A memory bank for RAM is just an individual addressable array on a memory board. The addressing of the bank is managed by the memory controller.
Regards,
-- Mark
Quoted 12 lines · Marcos Roriz
I'm reading Mel Gorman Understating the Linux Virtual Memory Manager and also TANENBAUM Modern Operating System I don't get some basic concepts of the Memory Management in Linux Kernel.
The first question is, what is a memory bank, It's not clear if its a physical section of the memory of if its a chip (physical) itself.
The
ZONE_NORMALzone refer only to kernel direct memory mapped, that means only to kernel pages and kernel programs (such as daemons)?Why is the
ZONE_NORMALso large (896 MB)? How to deal with low memory systems?The
ZONE_HIGHMEMzone refer to kernel not mapped directly, so that includes userspace programs right?I googled and searched for all those answers but couldn't find a direct and consistent answer, thats why I'm asking for your guys help.
Quoted 9 lines
Thanks very much for you time,
Marcos Roriz
--
To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [email protected] Please read the FAQ at http://kernelnewbies.org/FAQ
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
That book << Understating the Linux Virtual Memory Manager>> clearly elaborate why ZONE_NORMAL is 896 on the section 4.1 Linear Address Space.
SEE the comment about ZONE_HIGHMEM, include/linux/mmzone.h
#ifdef CONFIG_HIGHMEM
/*
* A memory area that is only addressable by the kernel through
* mapping portions into its own address space. This is for example
* used by i386 to allow the kernel to address the memory beyond
* 900MB. The kernel will set up special mappings (page
* table entries on i386) for each page that the kernel needs to
* access.
*/
ZONE_HIGHMEM,
#endif
2009/5/4 Mark Brown <[email protected]>:
Quoted 40 lines
Hi Marcos,
A memory bank for RAM is just an individual addressable array on a memory board. The addressing of the bank is managed by the memory controller.
Regards,
-- MarkQuoted 19 lines · Marcos Roriz
I'm reading Mel Gorman Understating the Linux Virtual Memory Manager and also TANENBAUM Modern Operating System I don't get some basic concepts of the Memory Management in Linux Kernel.
The first question is, what is a memory bank, It's not clear if its a physical section of the memory of if its a chip (physical) itself.
The
ZONE_NORMALzone refer only to kernel direct memory mapped, that means only to kernel pages and kernel programs (such as daemons)?Why is the
ZONE_NORMALso large (896 MB)? How to deal with low memory systems?The
ZONE_HIGHMEMzone refer to kernel not mapped directly, so that includes userspace programs right?I googled and searched for all those answers but couldn't find a direct and consistent answer, thats why I'm asking for your guys help.
Quoted 9 lines
Thanks very much for you time,
Marcos Roriz
--
To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [email protected] Please read the FAQ at http://kernelnewbies.org/FAQ
Quoted 6 lines
--
To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [email protected] Please read the FAQ at http://kernelnewbies.org/FAQ
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Hi...
Quoted 2 lines · Marcos Roriz
The
ZONE_NORMALzone 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.
Quoted 2 lines
Why is the
ZONE_NORMALso 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.
Quoted 2 lines
The
ZONE_HIGHMEMzone 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, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>