-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Arun KS
Sent: Thursday, March 12, 2015 11:03 AM
To: Sunny Shah
Cc: kernelnewbies
Subject: Re: Understanding the mapping of physical memory to kernel address 
space

Hello Sunny,

On Thu, Mar 12, 2015 at 10:32 PM, Sunny Shah <[email protected]> wrote:
> Hello,
>
> This is my first mail on this list, so please let me know if I'm erring.
>
> I'm reading Bovet and Cesati's "Understanding the Linux Kernel", 
> specifically the chapter "Memory Addressing", sub-section "Kernel Page 
> Tables". Here they describe how Linux initializes its page tables for 
> various RAM sizes and how much of the physical address space is mapped 
> onto the kernel virtual address space.
>
> I have several questions from my reading:
>
> My understanding is that the 32 bit virtual address space of a process 
> is split into 2 parts - the first 3 GiB for the user space and the 
> remaining 1GiB for the kernel (with the same kernel mapping being used 
> for all processes. However, although the kernel is mapped into the 
> higher portion of the address space, it resides in the lower 1 GiB of RAM. Is 
> this correct?
Yes. Incase of 3:1 mapping, kernel virtual address starts at 0xc0000000. You 
can also have 2:2 mappings aswell. It is a configurable option

Just an FYI, I've seen 1:3 mapping too. We had to do that with the kernels we 
built
when I was at one company because we needed 3GB of virtual address space to map 
all
of the memory mapped registers on their ASICs.

There's lots of options here.

Jeff Haran



_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to