Using all of 4GB RAM... questions and Vista versus Linux...

Bill Davidsen davidsen at tmr.com
Wed Oct 1 22:26:16 UTC 2008


Linuxguy123 wrote:
> I have a new HP hdx laptop with a Core Duo T8100 processor and 4 GB of
> RAM.
> 
> $ uname -a
> Linux localhost.localdomain 2.6.26.3-14.fc8 #1 SMP Wed Sep 3 03:40:05
> EDT 2008 i686 i686 i386 GNU/Linux
> 
> Even though I have 4GB of RAM installed, Linux appears to only be using
> 3GB of it.
> 
> $ free -t
>              total       used       free     shared    buffers
> cached
> Mem:       3106944     777056    2329888          0      60608
> 419608
> -/+ buffers/cache:     296840    2810104
> Swap:      2040244          0    2040244
> Total:     5147188     777056    4370132
> 
> I've read in other posts to this group that the cause of this is that
> the BIOS remaps the some (1GB) of memory to serve as address space for
> PCI devices, thus creating a memory "hole".   
> 
> I understand that some BIOSes allow one to remap those devices elsewhere
> in the map.  My BIOS does NOT allow that option.
> 
> Questions:
> 
> a) On machines that do not allow PCI remapping, is the processor
> physically disallowed from accessing that 4GB of RAM ?  Ie have the
> address lines from the processor been disconnected from that RAM due to
> being connected to the PCI devices ?
> 
> b) How do XP and Vista handle this ? Are they limited to 3GB of RAM
> too ?
> 
> c) I am running the 32 bit version of Linux.  Would it make any
> difference to my RAM access if I ran the 64 bit version ?
> 
Maybe, but that's the solution of last resort. If you have the x86_64 "live" CD 
it's worth looking, but I think there are (at least) two better solutions. First 
is the PAE kernel. You don't need to go diddling your setup to try it, just open 
a terminal and run
   yum install kernel-PAE
to get a PAE kernel. Then reboot, and when the boot menu comes up, select the 
PAE version. Run the free command and see if it found your memory.

The next step is to wait for the 2.6.27 kernel. WARNING: if you have e1000 
hardware, don't try this kernel until the issues have been resolved, see the 
kernel list, this kernel *may* make your e1000 into a brick by eating the flash 
firmware. It's being worked on, it's low probability, but wait as week, good 
people are trying it.

The reason 2.6.27 is desirable for you is that a lot of work has gone into the 
MTRR register mapping, and it *may* be able to describe your memory where the 
2.6.26 can't. Take that for what it's worth, I would try PAE now, and wait until 
2.6.27 is patched (unless you have a totally different hardware).

There are really no serious benefits to 64 bit unless you need to run very large 
user mode application programs. For less than 4GB memory 32 bit might be a bit 
faster due to less cache pressure, and for large memory the difference between 
PAE and 64 bit native is down in the noise, and 32 bit applications are 
generally faster (cache again).

Try the easy solutions first before you go 64 bit, and read about the tricks 
needed to run 32 bit apps in 64 bit (see threads on "my flash doesn't work" and 
similar).

-- 
Bill Davidsen <davidsen at tmr.com>
   "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot




More information about the fedora-list mailing list