Re: Zone sizes with low memory

2008-04-28 Thread Rene Herman

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

2008-04-28 Thread Vaughn Clinton

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

2008-04-28 Thread Andreas Leppert
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