Re: Zone sizes with low memory
On 28-04-08 16:18, Vaughn Clinton wrote: This is a good question because I'm not sure how different this would be defined in an x86_64 environment. If someone does answer this can they include the explaination for the x86_64 as well as the x86 please. Highmem does not exist on it so all memory is in ZONE_NORMAL. ZONE_DMA does still exists for LPC (ISA in disguise) devices and a DMA32 zone exists for devices with 32-bit DMA restrictions. With respect to address-space layout, check Documentation/x86-64/mm.txt. Also note from that map that a difference from 32-bit is the fixed kernel image mapping at the end of the address-space. On 32-bit, it's just where you load it as I said for 32-bit. I'm not very up on 64-bit, but those would be the/some 64-bit specific points. No highmem is ofcourse the important one. Rene. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [EMAIL PROTECTED] Please read the FAQ at http://kernelnewbies.org/FAQ
RE: Zone sizes with low memory
This is a good question because I'm not sure how different this would be defined in an x86_64 environment. If someone does answer this can they include the explaination for the x86_64 as well as the x86 please. Cheers,> Date: Mon, 28 Apr 2008 08:51:24 +0200> From: [EMAIL PROTECTED]> To: kernelnewbies@nl.linux.org> Subject: Zone sizes with low memory> > Hello,> > some questions to the zones.> > 1) Suppose I have a machine with 512 MB RAM. How is the memory node> structured into zones? Is it in this way?> > ZONE_DMA: 1-16 MB > ZONE_NORMAL: 17-512 MB> > That means, there is no high memory available for those machines with> less than 896 MB RAM ? > > > 2) Am I right that access to the kernel in memory is as follows:> > Virtual Memory > > -> + + [kernel linear addresses]> + + > +---+ <- 0xC000 [PAGE_OFFSET]> + +> + +> + +> + + [user-space lin. addresses]> + +> + +> + +> - <- 0x> > > Physical Memory> > -> + +> + + user> + +> +---+> + + kernel> - <- 0x> > > So, user-space linear addresses are always below 0xC000 and if a> user-process addresses something beyond this it is somehow prohibited. > > But in the "real" physical memory, the order is turned around: the> kernel resides in the lower regions of the memory and the user-space in> the upper regions. Is this correct?> > 3) Is ZONE_NORMAL used only for the kernel or also for user processes? > > 4) How much space is reserved for the kernel in the physical memory?> > > 5) I've read something about min_low_pfn, max_low_pfn and max_pfn. So> min_low_pfn is the first page frame number after the kernel (after _end).> max_low_pfn gives me the last page frame number which is accessible by> the kernel directly or in other words: the last page frame number which> is used by the kernel for its data structures and so on, max_low_pfn+1> is the first page frame number of a user process. max_pfn is the last> page frame number available in the physical address space. > > I've read this: "In low memory machines, the max_pfn will be the same as> the max_low_pfn". In which page frames are the user-level processes then> stored? > > I must have misunderstood something... > > Thanks> Andreas> > --> To unsubscribe from this list: send an email with> "unsubscribe kernelnewbies" to [EMAIL PROTECTED]> Please read the FAQ at http://kernelnewbies.org/FAQ>
Zone sizes with low memory
Hello, some questions to the zones. 1) Suppose I have a machine with 512 MB RAM. How is the memory node structured into zones? Is it in this way? ZONE_DMA: 1-16 MB ZONE_NORMAL: 17-512 MB That means, there is no high memory available for those machines with less than 896 MB RAM ? 2) Am I right that access to the kernel in memory is as follows: Virtual Memory - + + [kernel linear addresses] + + +---+ <- 0xC000 [PAGE_OFFSET] + + + + + + + + [user-space lin. addresses] + + + + + + - <- 0x Physical Memory - + + + + user + + +---+ + + kernel - <- 0x So, user-space linear addresses are always below 0xC000 and if a user-process addresses something beyond this it is somehow prohibited. But in the "real" physical memory, the order is turned around: the kernel resides in the lower regions of the memory and the user-space in the upper regions. Is this correct? 3) Is ZONE_NORMAL used only for the kernel or also for user processes? 4) How much space is reserved for the kernel in the physical memory? 5) I've read something about min_low_pfn, max_low_pfn and max_pfn. So min_low_pfn is the first page frame number after the kernel (after _end). max_low_pfn gives me the last page frame number which is accessible by the kernel directly or in other words: the last page frame number which is used by the kernel for its data structures and so on, max_low_pfn+1 is the first page frame number of a user process. max_pfn is the last page frame number available in the physical address space. I've read this: "In low memory machines, the max_pfn will be the same as the max_low_pfn". In which page frames are the user-level processes then stored? I must have misunderstood something... Thanks Andreas -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [EMAIL PROTECTED] Please read the FAQ at http://kernelnewbies.org/FAQ