# recognizing the entire 4gb of memory ??

## lancerus

I have 2 similiar machines - one has 3gb of ram installed, the other has 4gb of ram installed.   I'm running with HIGHMEM (the 4gb option) enabled.   The problem is both machines report having about the same amount of memory (3gb). 

Here's the dmesg output from the machine that has the 4gb of memory:

---------------------------------------

Linux version 2.6.15-gentoo-r1 (root@aurora) (gcc version 3.3.5-20050130 (Ge

ntoo 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)) #3 SMP Wed Mar 8 14:

43:48 EST 2006

2166MB HIGHMEM available.

896MB LOWMEM available.

Top output:

Mem:   3105084k total,    43124k used,  3061960k free,     1716k buffers

Swap:  1004020k total,        0k used,  1004020k free,    11884k cached

--------------------------------------

Here's the dmesg out from the (older) machine that as the 3gb of memory:

--------------------------------------

Linux version 2.6.11-gentoo-r4 (root@rs) (gcc version 3.3.5 (Gentoo Linux 3.3.5-

r1, ssp-3.3.2-3, pie-8.7.7.1)) #2 SMP Tue Mar 22 22:26:39 EST 2005

2175MB HIGHMEM available.

896MB LOWMEM available.

Top output:

Mem:   3114068k total,  3027880k used,    86188k free,      984k buffers

Swap:  1953768k total,  1509896k used,   443872k free,  1148860k cached

--------------------------------------

The machine with the 4gig of memory is a Dell GX280, and yes the bios setup properly reports that I have (4) 1gig sticks installed.

What am I missing here?    I expected to see something closer to the 4gig mark listed in top and in the dmesg output.     This machine (the gx280) is going to be pounded heavily by vmware (above and beyond what the older box is currently handling) -- I really need to have all the memory available that I can throw at it.

please advise - thanks.

----------

## felicehome

Hi, just a thought.

I think the Dell GX280 has an integrated Intel whatever graphic. Maybe there is a lot of ram assigned to your integrated graphics. Check this in your bios settings.

----------

## lancerus

Good thought - I'll take a look when I get into the office on Monday.  Unless there's some way to verify this while the system is up and running gentoo?      It does seem odd to lose an entire gig of memory to video though ... there there must be something else thats missing as well.    Are there any other large-memory users that can comment?

----------

## felicehome

Hi it's me again.

it's also reported by dmesg. For me it looks like this.

```
PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
```

But I thought about this again. I also have 4GB RAM. I can remember I also had troubles at first getting linux the whole 4GB to recognize. A BIOS update solved that for me. I really think it's a misconfigured BIOS or something like that. And it really hasn't something to do, what amount of RAM is reported at bootup.  It only counts the installed memory not the usable memory. Which might be less due memory holes created for other devices.

My BIOS for example has a special option to make 4GB availible.

You can see which memory holes are created by BIOS:

```
dmesg | grep e820

 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 00000000bfff0000 (usable)

 BIOS-e820: 00000000bfff0000 - 00000000bfff3000 (ACPI NVS)

 BIOS-e820: 00000000bfff3000 - 00000000c0000000 (ACPI data)

 BIOS-e820: 00000000c0000000 - 00000000d0000000 (reserved)

 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)

 BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
```

The reserved areas are unusable memory. 

What does "dmesg | grep e820" report on your system?

I suggest to read these threads dealing with similar problems:

http://www.ussg.iu.edu/hypermail/linux/kernel/0505.2/0099.html

http://www.spack.org/wiki/LinuxRamLimits

By the way: your dmesg output seems like you are running a 32bit gentoo. I don't know exactly which Intel CPU the dell has, but if it is a 64bit you should consider installing a 64bit gentoo. I might be wrong, but in theory if you use 64bit, addressing 4GB should be way faster than using highmem option in kernel. In fact you don't have that option in a 64bit kernel.

----------

## lancerus

This machine has a 32bit cpu - not 64bit.  The bios doesnt have any configuration setting for memory holes, PCI mapping area, etc.  AGP info and e820 info is below.  Still at a loss of what to do and not making any progress with this    :Sad: 

roger@aurora ~ $ dmesg | grep AGP

agpgart: AGP aperture is 256M @ 0xc0000000

roger@aurora ~ $ dmesg | grep e820

 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)

 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 00000000bf686c00 (usable)

 BIOS-e820: 00000000bf686c00 - 00000000bf688c00 (ACPI NVS)

 BIOS-e820: 00000000bf688c00 - 00000000bf68ac00 (ACPI data)

 BIOS-e820: 00000000bf68ac00 - 00000000c0000000 (reserved)

 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)

 BIOS-e820: 00000000fec00000 - 00000000fed00400 (reserved)

 BIOS-e820: 00000000fed20000 - 00000000feda0000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)

 BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)

----------

## felicehome

Hi,

I will try to translate the e820 output. 

This is your output:

BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) 

BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) 

BIOS-e820: 0000000000100000 - 00000000bf686c00 (usable) 

BIOS-e820: 00000000bf686c00 - 00000000bf688c00 (ACPI NVS) 

BIOS-e820: 00000000bf688c00 - 00000000bf68ac00 (ACPI data) 

BIOS-e820: 00000000bf68ac00 - 00000000c0000000 (reserved) 

BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) 

BIOS-e820: 00000000fec00000 - 00000000fed00400 (reserved) 

BIOS-e820: 00000000fed20000 - 00000000feda0000 (reserved) 

BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved) 

BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)

And this is what you get with a little math:

hex(00000000000a0000) - hex(0000000000000000) = dec(655360) = 640KB (usable)

hex(0000000000100000) - hex(00000000bf686c00) = dec(3135003) = 3135003KB (usable)

So this is a total of

3135643KB = 3062MB (usable) memory

What this mean is that your BIOS is to blame for this problem and not Linux. You can't fix this whatever you do, only if you get your BIOS to remap the unusable memory. As I said before, there are Mainboards like mine which have a special setting for addressing the whole 4GB. If your BIOS doesn't have that setting, it's propably bad news for you but you won't be able to get Linux recognizing the reserved memory areas whatever you do and tweak in your kernel settings. So your only chance is to call Dell support and ask if there is a new BIOS version available or search for a correct BIOS update and update your BIOS on your own, if there is a version which supports 4GB. It sounds a little odd, but there are many many motherboards out there, which manufacturers claim to support 4GB of RAM but only recognize 3GB. The  manufacturer is on the save side because when they say they support a total of 4GB memory it doesn't necessaraly mean all of the 4GB is usable. 

Sorry for that bad news but I can't help you beside telling you that.

Cheers Felice

----------

## lancerus

Thank you - I really appreciate the help and information.  I'll go pursue Dell now.  (but I wont expect any miracles there ...)

----------

## Keruskerfuerst

32 bit CPU can adress only 4GB of RAM.

In this adressable area lies the area of I/O: usually 512MB-1024MB depending on the BIOS.

You won´t have these problems with a 64 Bit CPU.

----------

## bollucks

You may be able to get more of that ram by enabling 64GB highmem support.

----------

## dank_waldmb

I'm actually having a similar problem to this but not quite.  Its posted here https://forums.gentoo.org/viewtopic-p-3687944.html#3687944 but I'll explain a little bit here as well in case you have any ideas.

I'm running a 64bit processor (AMD x2 4400 64bit) with 4gb of ram on a DFI motherboard using 64bit gentoo and a 64bit kernel.  My bios also has an option that allows it to see over 4 gb of ram called Memory Hole Remap or something similar.  This option works in that with it enabled, the system does indeed find all the ram 4.15 gb or so (with whatever the board has on it).

When I boot gentoo though, my ethernet ports (two of them) don't work.  If I reboot with the Memory Hole Remap option disabled, then the system only finds 3.4 gb of ram but then my ethernet ports work.  

In linux, kinfocenter finds 3.15gb without Memory Hole, and 3.85gb with Memory Hole.

I don't think its a problem with the Memory Hole option because that seems to do what it should I think its more a problem with where the system assigns hardware addresses?  In the thread above I explain my thinking a little more but its probably completely wrong.  

Any advice on this is appreciated as I've also posted on the DFI forums incase its a motherboard or bios issue.

Thanks

----------

## .:chrome:.

check in your kernel configuration the parameters CONFIG_VMSPLIT

----------

