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).
next prev parent 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).