[Fwd: Re: [opensuse-amd64] distribution of virtual address space]
On Fri, 2007-03-23 at 12:16 +0100, Detlef Grittner wrote:
I have a question about the distribution of the virtual address space between 32 and 64 bit apps. This would affect the x86_64 kernel on AMD64 and the newer Intel processors, if I am correct.
Assumed I have about 8 GByte on board and load 64 bit apps first, then they will go into the first 4 GByte of the virtual address space meaning that I can't load any 32 bit apps, when only the upper 4 GByte are left free?
You don't need to worry. I think you're confusing virtual address space with physical address space. You could google for those terms, and memory mapping. Cheers, Dave --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-amd64+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-amd64+help@opensuse.org
Am Samstag, den 24.03.2007, 15:16 +0000 schrieb Dave Howorth:
On Fri, 2007-03-23 at 12:16 +0100, Detlef Grittner wrote:
I have a question about the distribution of the virtual address space between 32 and 64 bit apps. This would affect the x86_64 kernel on AMD64 and the newer Intel processors, if I am correct.
Assumed I have about 8 GByte on board and load 64 bit apps first, then they will go into the first 4 GByte of the virtual address space meaning that I can't load any 32 bit apps, when only the upper 4 GByte are left free?
You don't need to worry.
I think you're confusing virtual address space with physical address space. You could google for those terms, and memory mapping.
Cheers, Dave
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-amd64+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-amd64+help@opensuse.org
Hi Dave, thanks for the answer. Yes, it looks like I missed the point on the virtual address space, which is in fact the address space for each process. Now I've learnt that for the AMD and Intel processors there is a Memory Management Unit, which does the job. So I would only have a problem with some embedded processors without MMU, but this is another topic. Without looking at the 64 bit kernel implementation, I assume that the MMU simply maps the physical address space above 4 GByte to the 32 bit process's virtual address space below 4 GByte. Detlef --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-amd64+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-amd64+help@opensuse.org
Without looking at the 64 bit kernel implementation, I assume that the MMU simply maps the physical address space above 4 GByte to the 32 bit process's virtual address space below 4 GByte.
It's a pool of 4K pages scattered all over memory which the MMU then forges into a continuous virtual address space for each process. No special 32bit distinction. There are cases in IO where it can matter though, but the kernel handles it all transparently. -Andi --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-amd64+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-amd64+help@opensuse.org
participants (3)
-
Andi Kleen
-
Dave Howorth
-
Detlef Grittner