Re: Why "high memory" in x86?

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

 



Hi,

Le Tue, 1 Aug 2006 11:18:16 +0530,
"Rajat Jain" <rajat.noida.india@xxxxxxxxx> a écrit :

> I recently read that the concept of "High Memory" was introduced
> because certain architectures are capable of physically addressing
> larger amounts of memory than they can virtually address (physical
> address space > virtual address space). I also read that nowadays
> "high Memory" exists only in x86.
> 
> 1) Why is virtual memory > 896 MB on x86 designated as high memory?
> AFAIK x86 has 4 GB of virtual address space (=physical address space?)
> 

If you're talking about CONFIG_HIGHMEM, then no, it's not really
designed for when you have more physical memory than it's possible to
virtually access. It's because the Linux kernel decided to split all
4GB virtual address spaces into two parts: 3 GB for the application, 1
GB for the kernel. The 1 GB for the kernel is an identity mapping of
the physical memory, which allows the kernel to access very simply all
the physical memory.

However, it has the drawback that when having more than 1 GB of
physical memory, things get harder. CONFIG_HIGHMEM allows to access
more than 1 GB of physical memory. It does it by mapping temporarly
physical pages that are above 1 GB. In fact, it's not 1 GB that is
identically-mapped, but 896 MB, the rest (1 GB - 896 MB) is used for the
temporary mappings needed to access pages above 896 MB.

My explanation might be a bit confusing (it's early in the morning,
here). I'd suggest you to read « Understanding the Linux Virtual Memory
Manager »,
http://www.phptr.com/content/images/0131453483/downloads/gorman_book.pdf

> 2) Has the "high Memory" concept got anything to do with PAE (Page
> Address Extention) feature of x86?

I don't think so.

> 3) Do any other architectures than x86 have the concept of high
> memory?

64 bits architecture, no. Other 32 bits architecture, maybe, but I'm
not sure.

Sincerly,

Thomas
-- 
Thomas Petazzoni - thomas.petazzoni@xxxxxxxx
http://{thomas,sos,kos}.enix.org - http://www.toulibre.org
http://www.{livret,agenda}dulibre.org

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           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