public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: joe Shmoe <jsmoe3@yahoo.com>
To: Roland Dreier <rdreier@cisco.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: kernel page table mapping for >1GB <3 GB for x86 arch without PAE
Date: Fri, 28 Aug 2009 11:40:56 -0700 (PDT)	[thread overview]
Message-ID: <812804.57438.qm@web45209.mail.sp1.yahoo.com> (raw)
In-Reply-To: <ada8wh3renp.fsf@cisco.com>

Thanks for the reply,
But my question is with regard to setting up the page tables during the kernel initialization in such a way so that entire RAM upto 4GB can be mapped. i.e virtual to physical address mapping. My question is strictly with reg. to physical address mapping only.

Why does kernel stop at 1GB (896 MB to be exact) while mapping from linear to physical address. 

Since a given process runs in both user/kernel mode how does it matter whether page table mapping  is for entire 4GB or 1 GB. Just because kernel setup the page tables does not mean that allocated dynamic memory cannot be accessed by given process while running in user mode. 


For the sake of discussion, let us say I have 3.5 GB of RAM of x86 with PAE disabled and I have only one process running other than kernel.
Why can't kernel simply setup the page table mapping in a way that entire 3.5GB is mapped from linear to physical during the initialization. Assuming this single process is given access upto 3 GB, while running in user mode this single process can access any memory location in the allocated 2 or 3 GB virtual space.






--- On Fri, 8/28/09, Roland Dreier <rdreier@cisco.com> wrote:

> From: Roland Dreier <rdreier@cisco.com>
> Subject: Re: kernel page table mapping for >1GB <3 GB for x86 arch without PAE
> To: "joe Shmoe" <jsmoe3@yahoo.com>
> Cc: linux-kernel@vger.kernel.org
> Date: Friday, August 28, 2009, 2:12 PM
> 
>  > Assuming I have 3GB RAM, why does not kernel create
> page tables in a way that all of this 3GB physical memory
> can be addressed . (for x86 arch 32 bit with PAE disabled )
>  > 
>  > I understand the 3GB/1GB split for user/kernel
> address space.Isn't  this just a matter of setting up the
> page table entries in such a way that so all the available
> RAM upto 3GB can mapped in the kernel page tables. In this
> way CPU's MMU can take care of mapping any virtual address
> within first 4GB to physical address using the page table
> entries regardless of a process is in kernel/user mode. 
> 
> On a 32-bit architecture, there is only 4GB of address
> space available.
> If the kernel uses 3GB of address space for a direct
> mapping of physical
> memory, then only 1GB is available for everything else
> (userspace,
> vmalloc, etc).  BTW, this is available by enabling
> CONFIG_VMSPLIT_1G.
> 
>  - R.
> 


      

  reply	other threads:[~2009-08-28 18:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-28 18:08 kernel page table mapping for >1GB <3 GB for x86 arch without PAE joe Shmoe
2009-08-28 18:12 ` Roland Dreier
2009-08-28 18:40   ` joe Shmoe [this message]
2009-08-28 19:13     ` Valdis.Kletnieks
2009-08-28 19:44       ` joe Shmoe
2009-08-28 19:53         ` Alan Cox
2009-08-28 20:23           ` joe Shmoe
2009-08-28 22:16             ` Alan Cox
2009-08-29  0:20               ` joe Shmoe
2009-08-29 13:05                 ` Alan Cox
2009-08-29 14:40               ` joe Shmoe
2009-08-28 21:07           ` joe Shmoe
2009-08-28 22:11             ` Alan Cox
2009-08-28 19:49     ` Roland Dreier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=812804.57438.qm@web45209.mail.sp1.yahoo.com \
    --to=jsmoe3@yahoo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdreier@cisco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox