Tôi đang chạy Debian Squeeze (x64):
# uname -srvmo
Linux 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux
Tôi có 2 thanh DDR2 2 GB tương thích trong bo mạch chủ G31M-S của mình . Nó hỗ trợ lên tới 8GB:
Vì đây là một máy chủ, tôi không thực sự quan tâm đến đồ họa. Vì vậy, tôi đặt nó ở mức thấp nhất.
Internal Graphics Mode Select: Auto
Enabled, 1MB <--
Enabled, 8MB
DVMT Mode Select: Fixed Mode <--
Auto
DVMT/FIXED Memory: 128MB <--
256MB
Tuy nhiên, Linux chỉ phát hiện bộ nhớ 3.19GiB:
# cat /proc/meminfo
MemTotal: 3350712 kB
...
Nhìn vào bản đồ E820 :
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000cfdb0000 (usable)
[ 0.000000] BIOS-e820: 00000000cfdb0000 - 00000000cfdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000cfdc0000 - 00000000cfdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000cfdf0000 - 00000000cfe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
Và làm một bài toán nhỏ:
>>> ((0x9F800 - 0x10000) + (0xCF6B0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
3.240476608276367
Chúng tôi nhận được chỉ về cùng một câu trả lời.
Tôi đang thiếu gì?
Tôi không hoàn toàn mua đối số "không gian địa chỉ PCI". Lấy một trong hai thanh 2GB ra, màn hình thiết lập hiển thị 2048MB.
# cat /proc/meminfo
MemTotal: 2058432 kB
Đó là 1,96GB.
Bản đồ E820 một lần nữa:
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007fdb0000 (usable)
[ 0.000000] BIOS-e820: 000000007fdb0000 - 000000007fdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007fdc0000 - 000000007fdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007fdf0000 - 000000007fe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
Và toán học ...
>>> ((0x9F800 - 0x10000) + (0x7fdb0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
1.9973125457763672
Vì vậy, tôi đã nhận được 2GB / 2GB. /proc/cpuinfo
cho thấy bộ xử lý của tôi hỗ trợ địa chỉ vật lý 36 bit. 2 ^ 36 = 64GB, mà tôi thậm chí không gần.
# ./smem -R 4G -w
Area Used Cache Noncache
firmware/hardware 843592 0 843592
kernel image 0 0 0
kernel dynamic memory 181116 134616 46500
userspace memory 287784 19736 268048
free memory 2881812 2881812 0