linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Frank Hu <frank.hu.2001@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Joel Fernandes <agnel.joel@gmail.com>,
	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, 6 Apr 2010 12:20:22 -0700	[thread overview]
Message-ID: <o2m8f84f9951004061220x16f3aa8by9cf19ec28ea492d7@mail.gmail.com> (raw)
In-Reply-To: <4BBB7AC9.5060008@zytor.com>

On Tue, Apr 6, 2010 at 11:17 AM, H. Peter Anvin <hpa@zytor.com> wrote:
> 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
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

the VM split is also configurable when building the kernel (for 32-bit
processors).

  reply	other threads:[~2010-04-06 19:20 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-06 14:37 why choose 896MB to the start point of ZONE_HIGHMEM hayfeng Lee
2010-04-06 15:02 ` Joel Fernandes
2010-04-06 18:17   ` H. Peter Anvin
2010-04-06 19:20     ` Frank Hu [this message]
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=o2m8f84f9951004061220x16f3aa8by9cf19ec28ea492d7@mail.gmail.com \
    --to=frank.hu.2001@gmail.com \
    --cc=agnel.joel@gmail.com \
    --cc=hpa@zytor.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;
as well as URLs for NNTP newsgroup(s).