Aceasta este o întrebare destul de specifică, dar de bază, referitoare la un anumit sistem informatic în combinație cu Linux EDAC. Dacă sunteți de tip TL;DR, treceți la secțiunea etichetată Întrebare. În caz contrar, vă rugăm să aveți grijă de mine, deoarece sunt necesare informații.
Placa de bază Docs
Placa de bază pentru HP ProLiant DL380 G7 prezintă două moduri de a identifica un slot de memorie:
- Ordinea populației (de la A la I)
- Număr slot (de la 1 la 9)
Această placă de bază are două procesoare cu două bănci de câte 9 stick-uri RAM pentru fiecare procesor. Fiecare bancă de RAM are 9 sloturi și este separată în 3 canale, cu până la 3 stick-uri RAM care populează fiecare canal.
Ordinea populației este A, B, C până ajungeți la I. Aceasta înseamnă că atunci când populați stick-urile RAM, trebuie să le introduceți mai întâi A, apoi B, apoi C și așa mai departe.În al doilea rând, sloturile pentru A, B și C sunt albe, unde restul nu sunt. Culoarea albă ilustrează care sloturi trebuie populate mai întâi.
Numere de slot vs litere de slot
Această placă de bază utilizează următoarele două convenții de etichetare per bancă și canal pentru a identifica un slot:
Ch1 Ch2 Ch3
{G, D, A} {H, E, B} {I, F, C}
{1, 2, 3} {4, 5, 6} {7, 8, 9}
{Parantezele} indică începutul și sfârșitul unui canal.
De exemplu, pentru a introduce 1 stick de memorie pentru fiecare procesor disponibil pe această placă de bază, primul slot ar fi A3 (un slot alb). Aici EDAC devine o problemă. Deoarece există două moduri de a identifica un slot (prin număr și/sau prin literă), determinarea slotului prin EDAC pare problematică în unele cazuri.
Identificarea după Populație
Dacă se identifică după ordinea populației, atunci numerele sloturilor ar trebui să arate astfel:
Ch1 Ch2 Ch3
Slot {2, 1, 0) {2, 1, 0} {2, 1, 0)
Litera {G, D, A} {H, E, B} {I, F, C}
Numărați {1, 2, 3} {4, 5, 6} {7, 8, 9}
În mod logic, motivul pentru care A3, B6 și C9 ar trebui identificate ca Slot#0 (DIMM#0) aici este că sunt sloturi albe care sunt populate primele. Este logic ca ordinea populației să dicteze cele mai mici numere de Slot de către cei completați primii.
EDAC
Dificultatea vine cu înregistrarea erorilor EDAC. Prima problemă cu EDAC este că folosește o ideologie „începe la 0”. Documentele plăcii de bază nu folosesc această convenție de numerotare și în schimb încep de la 1. Menționez acest lucru doar pentru că trebuie să fii conștient.
A doua și mai mare problemă este că pe această placă de bază, EDAC pare să enumere stick-urile de memorie pe baza ordinii numerice (numărarea) sloturilor (adică, 1-9), EDAC alegând să ignore ordinea populației A-I.
Ceea ce înseamnă asta este că => CPU#1Canal#1_DIMM#0 <= este ceea ce vedeți prin EDAC în dmesg. Deși este relativ ușor să identificați CPU și numărul canalului, este mai dificil să determinați slotul DIMM real de la EDAC.
În cazul acestui mesaj EDAC de mai sus, care stick este denumit DIMM#0 în Channel#1 pe CPU#1?
Ordine de enumerare
Urmând ordinea de enumerare pe care o afișează EDAC, se pare că numerele sloturilor par a fi identificate de EDAC așa (opusul ordinii populației):
Ch1 Ch2 Ch3
Slot {0, 1, 2) {0, 1, 2} {0, 1, 2)
Litera {G, D, A} {H, E, B} {I, F, C}
Numărați {1, 2, 3} {4, 5, 6} {7, 8, 9}
Unde DIMM#0 este etichetat astfel, deoarece este cel mai mic număr de numărare în timp ce este enumerat prin toate canalele și sloturile stick-ului RAM.
Urmând strict doar înregistrarea EDAC și pe baza celor de mai sus, aș concluziona că CPU#1Canal#1_DIMM#0 identifică stick-ul H4 (amintindu-ne că EDAC începe numărătoarea de la 0). Cu toate acestea, pentru că acum există îndoieli cu privire la faptul că DIMM#0 înseamnă H4 sau B6, acest lucru face ca sistemul de identificare obscur al EDAC să fie problematic. De asemenea, nu am găsit nicio modalitate concludentă de a rezolva această discrepanță. Deconectarea dintre sistemul abstract de identificare al EDAC și liniile directoare privind populația plăcii de bază este cu siguranță problematică.
Aceasta înseamnă că, pentru a fi în siguranță, dacă stick-ul H4 (sau B6) s-a stricat, va trebui să înlocuiți ambele H4 și B6 pentru a vă asigura că ați înlocuit stick-ul defect identificat de EDAC ca DIMM#0. Asta înseamnă înlocuirea a două stick-uri, deoarece EDAC nu a reușit să aleagă un mijloc mai concludent pentru a identifica adevăratul slot al DIMM-ului.
Nici nu înțeleg cu adevărat motivul pentru care dezvoltatorii EDAC au ales să folosească 0, 1 și 2 pentru identificarea DIMM/Slot a unui canal. Aceasta este o convenție mai mult sau mai puțin inventată folosită doar de EDAC, care nu are nicio legătură cu documentele plăcii de bază sau etichetarea de pe placa de bază. Astfel, EDAC face identificarea sloturilor inutil de dificilă și confuză, fără niciun beneficiu în lumea reală.
Întrebare
Înțelege cineva cu adevărat cum să identifice în mod concludent stick-ul de memorie corect prin EDAC cu schema de etichetare inutil de confuză? Sunt în pierdere.