Vấn đề của tôi là do mô-đun bộ nhớ bị lỗi và rất có thể là lỗi nhị phân kernel.
Tôi vừa mới khởi động PC với phần cứng hoàn toàn mới. Tôi đã chạy Debian 6.0 AMD64 trước đó và không có thay đổi gì cả (theo nghĩa đen; tôi chỉ rút các ổ đĩa cứng khỏi bo mạch chủ cũ và kết nối lại chúng với cái mới), nhưng thấy một điều tò mò:
- Tôi đã cài đặt vật lý 4 x 8 GB RAM
- Thiết lập UEFI / BIOS báo cáo 16383 MB RAM
- Linux
free -m
báo cáo 2985 MB RAM
2985 MB dường như quá gần với mốc 3 GB huyền diệu đối với nó hoàn toàn là sự trùng hợp ngẫu nhiên, nhưng được uname -r
in ra 2.6.32-5-amd64
; rõ ràng là kernel 64 bit, đó là tất cả những gì đã được cài đặt trên ổ đĩa hệ thống tôi đang sử dụng. Bo mạch chủ mới là Asus M5A97 Pro, có bốn khe DDR3 được cho là hỗ trợ các mô-đun 8 GB. Các mô-đun bộ nhớ giống hệt nhau, bốn Corsair XMS3 PC12800 8 GB, được mua cùng nhau.
Tôi đã không nhìn xung quanh thiết lập UEFI một cách chi tiết, nhưng đã duyệt qua nó và thấy không có gì có vẻ như nó cần thay đổi để kích hoạt một lượng lớn RAM.
Chỉnh sửa: Xác nhận thêm rằng tôi thực sự đang chạy 64-bit:
# file `which free`
/usr/bin/free: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
#
Có chuyện gì với điều này, và tôi có thể làm gì với nó?
Chỉnh sửa 2: dmesg, dmidecode và meminfo, theo yêu cầu. Tôi không có quyền truy cập vật lý vào hệ thống ngay bây giờ, vì vậy sẽ phải đợi đến tối nay để rút ra một số mô-đun và xem những gì nó làm. .
# dmidecode --type memory
# dmidecode 2.9
SMBIOS 2.7 present.
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer0
Serial Number: SerNum0
Asset Tag: AssetTagNum0
Part Number: Array1_PartNumber0
Handle 0x002A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: Array1_PartNumber1
Handle 0x002C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM2
Bank Locator: BANK2
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer2
Serial Number: SerNum2
Asset Tag: AssetTagNum2
Part Number: Array1_PartNumber2
Handle 0x002E, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: 64 bits
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: DIMM3
Bank Locator: BANK3
Type: Unknown
Type Detail: Synchronous
Speed: Unknown
Manufacturer: Manufacturer3
Serial Number: SerNum3
Asset Tag: AssetTagNum3
Part Number: Array1_PartNumber3
#
======================================================================
# cat /proc/meminfo
MemTotal: 3056820 kB
MemFree: 1470820 kB
Buffers: 390204 kB
Cached: 194660 kB
SwapCached: 0 kB
Active: 488024 kB
Inactive: 419096 kB
Active(anon): 231112 kB
Inactive(anon): 96660 kB
Active(file): 256912 kB
Inactive(file): 322436 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 8 kB
Writeback: 0 kB
AnonPages: 322320 kB
Mapped: 33012 kB
Shmem: 5472 kB
Slab: 613952 kB
SReclaimable: 597404 kB
SUnreclaim: 16548 kB
KernelStack: 2384 kB
PageTables: 19472 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1528408 kB
Committed_AS: 621464 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 294484 kB
VmallocChunk: 34359429080 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 9216 kB
DirectMap2M: 2054144 kB
DirectMap1G: 1048576 kB
#
======================================================================
# dmesg | grep -i memory
[ 0.000000] WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 13295MB of RAM.
[ 0.000000] WARNING: at /tmp/buildd/linux-2.6-2.6.32/debian/build/source_amd64_none/arch/x86/kernel/cpu/mtrr/cleanup.c:1092 mtrr_trim_uncached_memory+0x2e6/0x311()
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] initial memory mapped : 0 - 20000000
[ 0.000000] init_memory_mapping: 0000000000000000-00000000bdf00000
[ 0.000000] PM: Registered nosave memory: 000000000009d000 - 000000000009e000
[ 0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[ 0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[ 0.000000] PM: Registered nosave memory: 00000000bd94d000 - 00000000bd99c000
[ 0.000000] PM: Registered nosave memory: 00000000bd99c000 - 00000000bd9a6000
[ 0.000000] PM: Registered nosave memory: 00000000bd9a6000 - 00000000bdade000
[ 0.000000] PM: Registered nosave memory: 00000000bdade000 - 00000000bdaef000
[ 0.000000] PM: Registered nosave memory: 00000000bdaef000 - 00000000bdb02000
[ 0.000000] PM: Registered nosave memory: 00000000bdb02000 - 00000000bdb04000
[ 0.000000] PM: Registered nosave memory: 00000000bdb04000 - 00000000bdb0d000
[ 0.000000] PM: Registered nosave memory: 00000000bdb0d000 - 00000000bdb13000
[ 0.000000] PM: Registered nosave memory: 00000000bdb13000 - 00000000bdb75000
[ 0.000000] PM: Registered nosave memory: 00000000bdb75000 - 00000000bdd78000
[ 0.000000] Memory: 3046732k/3111936k available (3075k kernel code, 4728k absent, 60476k reserved, 1879k data, 584k init)
[ 1.636730] Freeing initrd memory: 9501k freed
[ 1.647370] Freeing unused kernel memory: 584k freed
[ 4.876602] [TTM] Zone kernel: Available graphics memory: 1528410 kiB.
[ 4.876615] [drm] radeon: 256M of VRAM memory ready
[ 4.876617] [drm] radeon: 512M of GTT memory ready.
[ 25.571018] VBoxDrv: dbg - g_abExecMemory=ffffffffa051d6c0
#
Grepping cho e820 cho thấy một loạt các phạm vi, đứng đầu với e820 update range: 00000000bdf00000 - 000000043f000000 (usable) ==> (reserved)
. 43f000000 là 16 GiB, bdf00000 là 3039 MiB. Tôi không thấy đó là sự trùng hợp.
# dmesg | grep -i e820
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009d800 (usable)
[ 0.000000] BIOS-e820: 000000000009d800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000bd94d000 (usable)
[ 0.000000] BIOS-e820: 00000000bd94d000 - 00000000bd99c000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bd99c000 - 00000000bd9a6000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000bd9a6000 - 00000000bdade000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdade000 - 00000000bdaef000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdaef000 - 00000000bdb02000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb02000 - 00000000bdb04000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdb04000 - 00000000bdb0d000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb0d000 - 00000000bdb13000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdb13000 - 00000000bdb75000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb75000 - 00000000bdd78000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdd78000 - 00000000bdf00000 (usable)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec10000 - 00000000fec11000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec20000 - 00000000fec21000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed61000 - 00000000fed71000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed80000 - 00000000fed90000 (reserved)
[ 0.000000] BIOS-e820: 00000000fef00000 - 0000000100000000 (reserved)
[ 0.000000] BIOS-e820: 0000000100001000 - 000000043f000000 (usable)
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[ 0.000000] e820 update range: 00000000bdf00000 - 000000043f000000 (usable) ==> (reserved)
[ 0.000000] update e820 for mtrr
#
EDIT 3/4 - thành công một phần:
- Nâng cấp BIOS UEFI từ phiên bản
0705 x64 08/23/2011
lên1007 02/10/2012
không giúp được gì: vấn đề chính xác vẫn còn. - Xóa một mô-đun DIMM (tôi đã đoán được may mắn ở vị trí nào là số 4: cách xa CPU nhất) cho phép BIOS phát hiện và sử dụng 24 GB còn lại, mặc dù cấu hình ba DIMM không được "khuyến nghị" theo sơ đồ trong hướng dẫn sử dụng. Đáng chú ý, chỗ ngồi một trong những DIMM còn lại trong khe số 4 vẫn cho phép nó được sử dụng, vì vậy khe cắm vẫn ổn. Đặt lại DIMM "gốc" vào khe đó khiến tôi quay lại điểm xuất phát.
- Khởi động từ đĩa CD cài đặt Debian 6.0.3 AMD64 vào môi trường cứu hộ và kiểm tra
dmesg
đầu ra của nó cho thấy không có lỗi MTRR tương tự . Ngoài ra, trong môi trường đó, với 3 x 8GB được cài đặt, 24 GB (cộng hoặc trừ epsilon lần pi hoặc khoảng đó; tôi đã không làm toán chính xác) hiển thị như có thể sử dụng đượcfree
. - Nâng cấp / cài đặt lại kernel (có sẵn một bản nâng cấp nhỏ) dường như cũng đã khắc phục các sự cố MTRR.
dmesg
hiện báo cáo tổng cộng 26198016 KB và không có lỗi MTRR, phù hợp với những gì tôi mong đợi với 3 x 8GB được cài đặt.free -m
bây giờ báo cáo tổng dung lượng RAM 24114 MB, khá thẳng thắn là đủ gần với tôi.
Cái này có mùi giống như một DIMM bị khóa, cộng với một hạt nhân vì bất kỳ lý do gì đã bị hỏng; điều đó có thể đã xảy ra trong thời gian mất điện (mặc dù tôi phải nói rằng đó là một cách kỳ lạ để hạt nhân bị phá vỡ!). DIMM không hoạt động sẽ quay trở lại đại lý ngay khi tôi nói chuyện với họ (hy vọng vào ngày mai).
(hy vọng) EDIT CUỐI CÙNG
Tôi là một trong hai cặp DIMM, nó được người bán lại chấp nhận là bị hỏng và họ đã gửi cho tôi một cặp mới, có vẻ như chỉ hoạt động tốt. Vì vậy, bây giờ tôi về cơ bản là nơi tôi dự định ban đầu gần một tháng trước (mặc dù một phần lớn thời gian đó không thực sự là do người bán lại), với RAM 32 GB có thể sử dụng được; free -m
báo cáo tổng bộ nhớ 32194 MB và kernel báo cáo 34586624k
RAM khi khởi tạo, cả hai đều phù hợp với mong đợi của tôi.
dmidecode --type memory
và hàng trăm dòng đầu tiên hoặc hơn đầu ra của dmesg
(đảm bảo bao gồm mọi thứ trông giống như về bộ nhớ).
WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 13295MB of RAM.
Vâng, có 13G mất tích của bạn.