Bagaimana cara mengetahui apakah RAM ECC berfungsi?

19

Saya berencana mendapatkan beberapa RAM ECC untuk menggantikan RAM non-ECC yang saat ini telah saya instal pada motherboard Asus M5A97 Pro saya (chipset AMD 970, CPU FX-6100).

Setelah saya menginstal RAM, bagaimana saya tahu apakah fitur ECC RAM berfungsi dengan baik?

Saya berpikir tentang dmidecode --type memoryyang saat ini mencetak antara lain untuk setiap RAM stick:

Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits

(Untuk satu, saya harapkan dengan 1 bit ECC per byte lebar data tetap 64 bit tetapi total lebar untuk membaca 72 bit.)

Bisakah itu digunakan untuk menentukan apakah ECC beroperasi? Atau apakah dmidecode level terlalu rendah untuk itu? Apa lagi yang bisa saya gunakan (kecuali menunggu dan melihat apakah kesalahan ECC muncul di log, yang akan menunjukkan itu berfungsi tetapi tidak bahwa itu tidak berfungsi)?

Pembaruan: Saya kemudian memikirkan edac-utils. Menginstalnya, saya mengerti Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set. Itu memberi saya edac-utildan edac-ctlexecutable. Bisakah salah satu dari itu digunakan untuk tujuan ini?

sebuah CVn
sumber
2
dapatkah seseorang dengan lebih banyak waktu daripada saya menambahkan bagian tentang ecc_check.c dari pugetsystems.com/labs/articles/… ke dalam salah satu jawaban?
Costin Gușă

Jawaban:

12

Tampaknya tidak ada cara pasti untuk mengatakannya , namun berbagai pendekatan dapat memberi Anda semacam jawaban. Tampaknya Anda harus mencoba yang berbeda sampai Anda menemukan yang memberitahu Anda bahwa ECC berfungsi.

Dalam kasus saya memtest86 + 4.20 tidak dapat dibujuk untuk menyadari itu berurusan dengan RAM ECC; bahkan jika saya mengkonfigurasinya untuk ECC On, itu masih dilaporkan ECC: Disabledpada baris IMC. Saya belum mencoba dengan versi yang lebih baru. Namun (mungkin setelah menginstal edac-utils, sayangnya saya melakukan keduanya pada dasarnya secara bersamaan), Linux melaporkan dalam log boot (diselingi dengan beberapa entri lain):

[    4.867198] EDAC MC: Ver: 2.1.0
...
[    4.874374] MCE: In-kernel MCE decoding enabled.
[    4.875414] AMD64 EDAC driver v3.4.0
[    4.875438] EDAC amd64: DRAM ECC enabled.
...
[    4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[    4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[    4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[    4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM

yang merupakan indikasi yang cukup bagus. Melakukan secara manual /etc/init.d/edac restarttidak membuat entri log yang serupa, dan melihat log yang lebih lama dari beberapa reboot yang lalu, saya melihat:

[   13.886688] EDAC MC: Ver: 2.1.0
[   13.890389] MCE: In-kernel MCE decoding enabled.
[   13.891082] AMD64 EDAC driver v3.4.0
[   13.891107] EDAC amd64: DRAM ECC disabled.
[   13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[   13.891117]  Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[   13.891118]  (Note that use of the override may cause unknown side effects.)

dmidecode --type memoryjuga memberikan dua indikasi yang cukup kuat: properti "jenis koreksi kesalahan" array memori fisik (yang bagaimanapun karena beberapa alasan menunjukkan hal yang sama pada RAM non-ECC , jadi ini mungkin terkait dengan dukungan motherboard daripada kemampuan memori),

Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: Multi-bit ECC

dan lebar total masing-masing perangkat memori dan lebar data, masing-masing (bit tambahan adalah yang digunakan untuk ECC):

Handle 0x0028, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0026
    Error Information Handle: Not Provided
    Total Width: 72 bits
    Data Width: 64 bits
sebuah CVn
sumber
5

Ada cara yang sangat sederhana dan efektif untuk melakukan ini, asalkan Anda memiliki akses konsol ke server / PC Anda dan dapat mem-boot ulangnya : memtest86 +

Alat yang bagus ini akan dengan cepat menunjukkan kepada Anda jika memori diaktifkan ECC. Saya juga percaya ini akan melakukan validasi ECC ketika melakukan pengujian yang sebenarnya.

Berikut tangkapan layar (agak ketinggalan jaman): masukkan deskripsi gambar di sini

pauska
sumber
Sempurna! Untuk saat ini, saya melihat IMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)dan ECC off. Saya kira kemudian bahwa jika itu menunjukkan sesuatu selain Disableddan offuntuk ECC dengan DIMM baru, saya siap sejauh perangkat keras berjalan?
CVn
2
@ MichaelKjörling Saya hanya berurusan dengan ECC pada server standar industri dengan Xeon CPU, jadi saya tidak tahu. Saya dapat membayangkan bahwa CPU perlu mendukung ECC, karena pengontrol memori berada di dalamnya.
pauska
en.wikipedia.org/wiki/… mencantumkan FX-6100 sebagai Zambezi (Bulldozer-based), di mana "semua model mendukung ... ECC [RAM]"
CVn
Sayangnya memtest86 + 4.20 sepertinya tidak mau mengenali RAM saya sebagai ECC. Namun, ada beberapa indikasi lain yang cukup kuat bahwa ECC berfungsi; lihat jawaban saya. Tetap saja, terima kasih banyak!
CVn
1
Ini terlihat agak relevan - confluence.wartungsfenster.de/display/Adminspace/…
Faheem Mitha