Đây là một câu hỏi khá cụ thể nhưng cơ bản liên quan đến một hệ thống máy tính cụ thể kết hợp với Linux EDAC. Nếu bạn là loại TL; DR, vui lòng bỏ qua phần có nhãn Câu hỏi. Nếu không, xin hãy đồng ý với tôi vì một số thông tin là cần thiết.
Tài liệu bo mạch chủ
Bo mạch chủ dành cho HP ProLiant DL380 G7 liệt kê hai cách để xác định khe cắm bộ nhớ:
- Thứ tự dân số (A đến I)
- Số vị trí (1 đến 9)
Bo mạch chủ này có hai CPU với hai dãy 9 thanh RAM cho mỗi CPU. Mỗi dải RAM có 9 khe cắm và được chia thành 3 kênh với tối đa 3 thanh RAM được bố trí trên mỗi kênh.
Thứ tự dân số là A, B, C cho đến khi bạn đến I. Điều này có nghĩa là khi điền các thanh RAM, bạn phải lắp chúng A trước, sau đó là B, sau đó là C, v.v.Thứ hai, các vị trí dành cho A, B và C có màu trắng trong khi các vị trí còn lại thì không. Màu trắng minh họa vị trí nào sẽ được điền trước.
Số vị trí vs Chữ cái vị trí
Bo mạch chủ này sử dụng hai quy ước ghi nhãn sau đây cho mỗi ngân hàng và kênh để xác định một khe cắm:
Ch1 Ch2 Ch3
{G, D, A} {H, E, B} {I, F, C}
{1, 2, 3} {4, 5, 6} {7, 8, 9}
{Dấu ngoặc} biểu thị phần đầu và phần cuối của một kênh.
Ví dụ, để cắm 1 thẻ nhớ cho mỗi CPU có sẵn trên bo mạch chủ này, khe đầu tiên sẽ là A3 (khe màu trắng). Đây là nơi EDAC trở thành một vấn đề. Vì có hai cách để xác định vị trí (theo số và/hoặc bằng chữ cái), việc xác định vị trí thông qua EDAC có vẻ khó khăn trong một số trường hợp.
Xác định theo dân số
Nếu xác định theo thứ tự dân số, thì số vị trí sẽ giống như sau:
Ch1 Ch2 Ch3
Vị trí {2, 1, 0) {2, 1, 0} {2, 1, 0)
Chữ cái {G, D, A} {H, E, B} {I, F, C}
Đếm {1, 2, 3} {4, 5, 6} {7, 8, 9}
Theo logic, lý do mà A3, B6 và C9 nên được xác định là Khe số 0 (DIMM#0) ở đây là vì chúng là các khe màu trắng được điền trước. Điều hợp lý là thứ tự dân số sẽ quy định các số Vị trí thấp nhất theo những người được điền trước.
EDAC
Khó khăn xảy ra với việc ghi nhật ký lỗi EDAC. Vấn đề đầu tiên với EDAC là nó sử dụng hệ tư tưởng 'bắt đầu từ 0'. Các tài liệu về bo mạch chủ không sử dụng quy ước đánh số này và thay vào đó bắt đầu từ 1. Tôi chỉ đề cập đến điều này vì đây là điều cần lưu ý.
Vấn đề thứ hai và lớn hơn là trên bo mạch chủ này, EDAC dường như liệt kê các thẻ nhớ dựa trên thứ tự số (Số lượng) của các khe (ví dụ: 1-9), với EDAC chọn bỏ qua thứ tự dân số A-I.
Điều này có nghĩa là gì => CPU#1Kênh#1_DIMM#0 <= là những gì bạn thấy qua EDAC trong dmesg. Mặc dù việc xác định số CPU và Kênh tương đối dễ dàng, nhưng việc xác định khe cắm DIMM thực tế từ EDAC lại khó khăn hơn.
Trong trường hợp thông báo EDAC ở trên, thanh nào được gọi là DIMM#0 trong Kênh#1 trên CPU#1?
thứ tự liệt kê
Theo thứ tự liệt kê mà EDAC hiển thị, có vẻ như các số vị trí dường như được xác định bởi EDAC như vậy (ngược lại với thứ tự dân số):
Ch1 Ch2 Ch3
Vị trí {0, 1, 2) {0, 1, 2} {0, 1, 2)
Chữ cái {G, D, A} {H, E, B} {I, F, C}
Đếm {1, 2, 3} {4, 5, 6} {7, 8, 9}
Trong đó DIMM#0 được gắn nhãn như vậy vì đây là số Đếm thấp nhất trong khi liệt kê qua tất cả các kênh và khe của thanh RAM.
Chỉ tuân thủ nghiêm ngặt việc ghi nhật ký EDAC và dựa trên những điều trên, tôi kết luận rằng CPU#1Kênh#1_DIMM#0 xác định thanh H4 (nhớ rằng EDAC bắt đầu đếm từ 0). Tuy nhiên, do hiện tại có nghi ngờ về việc liệu DIMM#0 có nghĩa là H4 hay B6, điều này làm cho hệ thống nhận dạng bị xáo trộn của EDAC gặp vấn đề. Tôi cũng không tìm thấy cách thuyết phục nào để giải quyết sự khác biệt này. Sự mất kết nối giữa hệ thống trừu tượng nhận dạng của EDAC và các nguyên tắc về số lượng bo mạch chủ chắc chắn là có vấn đề.
Điều này có nghĩa là để an toàn, nếu thanh H4 (hoặc B6) bị hỏng, bạn phải thay cả H4 và B6 để đảm bảo bạn đã thay thế thanh xấu được EDAC xác định là DIMM#0. Điều đó có nghĩa là thay thế tất cả hai thanh vì EDAC đã không chọn được phương tiện thuyết phục hơn để xác định khe cắm thực sự của DIMM.
Tôi thậm chí không thực sự hiểu lý do các nhà phát triển EDAC chọn sử dụng 0, 1 và 2 để nhận dạng DIMM/Khe cắm của kênh. Đây là một quy ước ít nhiều được tạo ra chỉ được sử dụng bởi EDAC, không liên quan đến tài liệu bo mạch chủ hoặc nhãn trên bo mạch chủ. Do đó, EDAC làm cho việc nhận dạng vị trí trở nên khó khăn và khó hiểu một cách không cần thiết mà không mang lại lợi ích gì trong thế giới thực.
Câu hỏi
Có ai thực sự hiểu cách xác định chính xác thẻ nhớ thông qua EDAC với sơ đồ ghi nhãn gây nhầm lẫn không cần thiết của nó không? Tôi thua lỗ.