LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 09-17-2010, 03:18 AM   #1
paresh.nakhe
LQ Newbie
 
Registered: Nov 2007
Posts: 20

Rep: Reputation: 0
High Memory support


Hi,
My current understanding is that the default kernel configuration can recognize only 896 MB of RAM. Explicit options need to be selected while compiling the kernel. I read that this is due to limitations of 32-bit address space in x-86 architecture. What are these limitations?

Also my concepts of high memory are a bit hazy. This page is the best i have got until now.
http://kerneltrap.org/node/2450

It has a paragraph saying...

"Since Linux can't access memory which hasn't been directly mapped into its address space, to use memory > 1 GB, the physical pages have to be mapped in the kernel virtual address space first. This means that the pages in ZONE_HIGHMEM have to be mapped in ZONE_NORMAL before they can be accessed".

Someone please explain this to me. If we have 32 bits we can map upto 4 GB, just that these addresses need to be converted to physical addresses. Then what does the para imply.

Also why were these zones...HIGHMEM, NORMAL....created in the first place. If anyone has good links, it will really be helpful if you could share it.
 
Old 09-17-2010, 04:50 AM   #2
paresh.nakhe
LQ Newbie
 
Registered: Nov 2007
Posts: 20

Original Poster
Rep: Reputation: 0
Let me know if this post is not suited for this category( general). I think this problem suits this category.
 
Old 09-17-2010, 09:56 AM   #3
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
The important complication is that the kernel mode and user mode share the same 4GB address space, combined with the fact that kernel mode code might be servicing a request for one user process during an interrupt within the execution of a different user process.

32 bit Linux is typically configured such that 1GB of virtual space is for kernel mode and 3GB is for user mode.

When the kernel virtual address space (1GB) is larger than the total physical memory size plus some overhead, it is possible to have all of physical memory mapped inside the kernel address space all the time. That means the physical memory can be accessed by the kernel regardless of which user process was interrupted.

Imagine process X makes a request that the kernel can't complete immediately (due to some I/O operation). When the time comes to access the buffer for the request, process Y might be mapped.

So if the kernel remembered the virtual address of the buffer (in the user mode virtual space of process X) when the request was made, it couldn't use that address without remapping process X. So it is better to remember the physical address of the buffer.

But if there is more than 832MB of ram in a 32 bit system, the physical address of the buffer might not be mapped at all at the moment the kernel wants to access it. That introduces significant complications into the kernel design.

Last edited by johnsfine; 09-17-2010 at 10:02 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
High Memory Support MikeQ Linux - General 7 08-19-2009 04:51 AM
Memory usage too high duBeN Slackware 2 12-04-2006 06:03 AM
is high mem support in a 2.6 kernel advised against for 1GB of memory? hedpe Linux - General 2 09-06-2005 09:35 AM
High memory utilization dav7500 Linux - General 7 03-05-2004 05:07 PM
Help!?! RH 8 Memory Mapping -High Memory-Virtural Memory issues.. Merlin53 Linux - Hardware 2 06-18-2003 04:48 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 04:44 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration