Re: why choose 896MB to the start point of ZONE_HIGHMEM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hayfeng,

On Tue, Apr 6, 2010 at 8:07 PM, hayfeng Lee <teklife.kernel@xxxxxxxxx> 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 :)

Hope this helps, thanks,
-Joel

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux