mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Joel Fernandes <agnel.joel@gmail.com>
Cc: hayfeng Lee <teklife.kernel@gmail.com>,
	linux-kernel@vger.kernel.org, linux-kernel@zh-kernel.org,
	kernelnewbies@nl.linux.org
Subject: Re: why choose 896MB to the start point of ZONE_HIGHMEM
Date: Tue, 06 Apr 2010 11:17:45 -0700	[thread overview]
Message-ID: <4BBB7AC9.5060008@zytor.com> (raw)
In-Reply-To: <g2s9ff7a3bc1004060802va38aa361s6abd07e8c992dd56@mail.gmail.com>

On 04/06/2010 08:02 AM, Joel Fernandes wrote:
> Hi Hayfeng,
> 
> On Tue, Apr 6, 2010 at 8:07 PM, hayfeng Lee <teklife.kernel@gmail.com> wrote:
>> hello,every one.
>> I have a question:
>> Why does linux choose 896MB to do a start point of ZONE_HIGHMEM and
>> the end point of ZONE_NORMAL. Just for experience?
>> What is the advantages?
> 
> This is not an advantage but a limitation of 32 bit processor and
> architecture. Only physical memory in first 896MB  is directly mapped
> to the kernel virtual memory address space. This is called
> ZONE_NORMAL. To access any physical memory in ZONE_HIGHMEM, the kernel
> has to set up page table entries to indirectly map the physical memory
> into a virtual memory address (I think around 128MB or so worth page
> table entries are reused for this purpose). On the other hand, on 64
> bit architectures, the entire physical memory is directly mapped and
> accessible to the kernel. ZONE_HIGHMEM doesn't exist on 64 bit.
> 
> Take the above with a grain of salt, someone with a better knowledge
> about this intrusive topic can be give a more detailed explanation :)
> 

The ELF ABI specifies that user space has 3 GB available to it.  That
leaves 1 GB for the kernel.  The kernel, by default, uses 128 MB for I/O
mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM.

All of these boundaries are configurable; with PAE enabled the user
space boundary has to be on a 1 GB boundary.

	-hpa

  reply	other threads:[~2010-04-06 18:27 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-06 14:37 hayfeng Lee
2010-04-06 15:02 ` Joel Fernandes
2010-04-06 18:17   ` H. Peter Anvin [this message]
2010-04-06 19:20     ` Frank Hu
2010-04-06 19:44       ` H. Peter Anvin
2010-04-06 20:01         ` Joel Fernandes
2010-04-06 20:04           ` H. Peter Anvin
     [not found]           ` <q2iacff6c2b1004061528t28f1337eq977aabf8fe71bc22@mail.gmail.com>
     [not found]             ` <3715922601579231267@unknownmsgid>
2010-04-06 23:32               ` H. Peter Anvin
2010-04-07  1:47                 ` Xianghua Xiao
     [not found]                   ` <n2uacff6c2b1004061904v5d290fa6v909e2e5fe32ff910@mail.gmail.com>
2010-04-07  2:09                     ` H. Peter Anvin
     [not found]                       ` <n2jacff6c2b1004062248w311d8482w6c64a7bdfded8385@mail.gmail.com>
2010-04-07 12:10                         ` Xianghua Xiao
     [not found]                           ` <k2z7f245da81004070550u5324f6ffyba3e996a3e292a0a@mail.gmail.com>
     [not found]                             ` <n2kb114f3281004070948hb510b9b1o80126e2411a98c8d@mail.gmail.com>
2010-04-07 17:14                               ` H. Peter Anvin
2010-04-08  2:23                                 ` Nobin Mathew
     [not found]             ` <u2o7f245da81004062105w1f7d3416n7855472d28e8bcfd@mail.gmail.com>
2010-04-07  5:28               ` H. Peter Anvin
     [not found]                 ` <h2pacff6c2b1004062257mc8552d81u33322c43e47502c9@mail.gmail.com>
2010-04-07  6:04                   ` H. Peter Anvin
     [not found]             ` <q2oc58e39921004062208z6410b031o8d5654a582cc2783@mail.gmail.com>
     [not found]               ` <t2yacff6c2b1004062309t89b6bddfy3b0cf5970846fbb0@mail.gmail.com>
2010-04-07 14:11                 ` tek-life
2010-04-06 20:15         ` Frank Hu
2010-04-06 20:18           ` H. Peter Anvin
2010-04-07 12:16           ` Krzysztof Halasa

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=4BBB7AC9.5060008@zytor.com \
    --to=hpa@zytor.com \
    --cc=agnel.joel@gmail.com \
    --cc=kernelnewbies@nl.linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kernel@zh-kernel.org \
    --cc=teklife.kernel@gmail.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

Powered by JetHome