1

I am using Ubuntu Linux 64 bit. Recently, I was using Ubuntu 32 bit, and discovered through the command grep --color=always -iw lm /proc/cpuinfo that my processor is capable of 64-bit. The output of the command is:

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr

However, after wiping the disk and install Ubuntu 11.10 64 bit, the system still detects only 3.1 GB of RAM. I have verified in the BIOS that I have 4 gigabytes of RAM installed, not 3.1. Why is Ubuntu 64 bit only detecting 3.1 GB of RAM?

Output of uname -a

aaron@Aarons-Ubuntu-Computer:~$ uname -a
Linux Aarons-Ubuntu-Computer 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Output of free -m

aaron@Aarons-Ubuntu-Computer:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3136       2960        175          0        233       1996
-/+ buffers/cache:        730       2405
Swap:         3189          0       3189
Aaron Hill
  • 4,957
  • similar question here - does this apply to your CPU type? http://askubuntu.com/questions/20571/why-is-more-than-3gb-of-ram-not-recognised-when-using-amd64 – fossfreedom Jan 10 '12 at 14:18
  • No. My CPU is an Intel Pentium 4 CPU 3.06 GHz. I am also using Ubuntu 11.10, not 10.10. – Aaron Hill Jan 10 '12 at 14:22
  • some bios options have options to play with memory mapping - can you look to see if you have any such options? – fossfreedom Jan 10 '12 at 14:30
  • Does your motherboard have a memory remap feature? I have seen where some problems like this has been rectified by setting this to on in the bios. – Sabacon Jan 10 '12 at 14:40
  • Maybe it's not the case, but at least "in the old times" there were integrated VGA solutions on the motherboard where system memory is used in a way that less memory is available then for the rest of the system. However I am not sure it's the case and is it a common thing to do nowdays ... Maybe it's interesting to inspect memory map got from BIOS, like see (hexdec) values on output of dmesg, and see lines have something about "e820". – LGB Jan 10 '12 at 15:25

1 Answers1

2

About 80% of CPUs in use nowadays (and almost every single new CPU sold) support 64-bit Ubuntu, so this doesn't come as a surprise. There are plans to suggest 64-bit Ubuntu as the default (the way 32-bit is suggested now) as most people's hardware is capable of running it.

Still, to see the total memory as seen by the kernel, as well as a report on how it's initially allocated, you can do this:

dmesg |grep "Memory: "

This will show a line such as this one:

[    0.000000] Memory: 3823988k/4849664k available (6109k kernel code, 874468k absent, 151208k reserved, 4876k data, 984k init)

My system has 4GB of RAM installed, however the total reported is something like 4.7 GB (I'm guessing the BIOS reports more memory due to address space for the video cards, PCI and IO devices and others). In the end only 3.6 GB are available to applications due to these concerns.

Note the "absent" memory amount, this "reflects the memory addressing space lost due to memory holes in the memory map. Typically holes are left for PCI space, IO, etc.. Every vendor model system is different, and every system will have a different value reported for the absent memory."

Also look at the question pointed to by fossfreedom, it gives you some more of an explanation of where addressing space may be being used.

roadmr
  • 34,222
  • 9
  • 81
  • 93
  • 2
    I ran the dmesg |grep "Memory: " command. It reports that 3.1 gigabytes are available, 72292 kilobytes is reserved, and 452 kilobytes is absent. Although this causes a drop in available memory, it does not explain the .9 gigabyte loss that I am experiencing. – Aaron Hill Jan 10 '12 at 14:53