Re: high and low mem

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

 



Hi amit,
>  
> Hi 
>   
>  I had this doubt about high and low mem. I have read that for a >32 bit processor, generally the way linux divides virtual mem of >2^32=4GB, is that
> it simply keeps the higher 3GB as high mem and the lowest >1GB as low mem.
> Low mem generally being kept for the kernel and high mem for >the user space.

Completely wrong notion,the kernel is mapped from 3G to 4G in the
virtual address space and the process address space spans 1G to 3G.And
dont call them low mem and high mem as that is not the right
terminology.

> Now, there are kernel logical addresses, that have a one to one >mapping to 
> physical addresses .... also the kernel code and data structures >like page
> tables also need to be kept in this 1GB, hence max mem that >linux can deal with is <1GB. 

The reason why the kernel cannot deal with memory greater than 1G
without the highmem patch is as follows:
The kernel maps the entire physical RAM in to its virtual address
space, because of the 3G/1G split it can map only 1G(precisely 896M as
the last 128M are used for non contigous memory allocation and fix
mapped linear addresses) of physical RAM.Linux deals with memory
greater than 1G ( precisely 896 M) with the help of high memory.If a
program needs to address parts of RAM greater than 896M then some
linear address interval is mapped to the RAM.It implies changing of
page table entries.This is done by using different mechanism like
kmap,permanent mappings.
I hope your questions are answered, because of the wrong notion you
had about high mem.

Regards
Saravanan S
-- 
Subscribe LKG_INDIA Group :
Its Linux Kernel oriented group, started by bunch of
guys from India.This group discusses the technical details of Linux
Kernel, helping the members to share and enhance their knowledge on Linux
Kernel and general OS concepts.
Be a member of it if you are Linux Kernel Geek.
Visit the LKG_INDIA home page:
http://groups.yahoo.com/group/lkg_india/

--
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