Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
DRM RAS qua Netlink chung¶
Giao diện DRM RAS (Độ tin cậy, Tính khả dụng, Khả năng phục vụ) cung cấp một cách tiêu chuẩn hóa cho trình điều khiển máy gia tốc/GPU để hiển thị bộ đếm lỗi và các nút đáng tin cậy khác đối với không gian người dùng thông qua Generic Netlink. Điều này cho phép công cụ chẩn đoán, trình nền giám sát hoặc cơ sở hạ tầng kiểm tra để truy vấn phần cứng sức khỏe một cách thống nhất trên các trình điều khiển DRM khác nhau.
Mục tiêu chính:
Cung cấp giải pháp RAS được tiêu chuẩn hóa cho GPU và trình điều khiển máy gia tốc, cho phép hoạt động giám sát và độ tin cậy của trung tâm dữ liệu.
Triển khai một dòng Netlink chung drm-ras duy nhất để đáp ứng Netlink YAML hiện đại thông số kỹ thuật và tập trung tất cả các thông tin liên lạc liên quan đến RAS trong một không gian tên.
Hỗ trợ giao diện truy cập lỗi cơ bản, giải quyết ngay lập tức, cần thiết nhu cầu giám sát.
Cung cấp một giao diện linh hoạt, phù hợp với tương lai và có thể được mở rộng để hỗ trợ các loại dữ liệu RAS bổ sung trong tương lai.
Cho phép nhiều nút trên mỗi trình điều khiển, cho phép trình điều khiển đăng ký riêng các nút cho các khối IP, khối con khác nhau hoặc các phân vùng logic khác như có thể áp dụng.
Nút¶
Các nút là sự trừu tượng hóa logic biểu thị một loại lỗi hoặc nguồn lỗi trong thiết bị. Hiện tại, chỉ có các nút bộ đếm lỗi được hỗ trợ.
Trình điều khiển có trách nhiệm đăng ký và hủy đăng ký các nút thông qua API ZZ0000ZZ và ZZ0001ZZ.
Quản lý nút¶
Cách sử dụng Netlink chung¶
Giao diện được triển khai dưới dạng họ Netlink chung có tên ZZ0000ZZ. Công cụ không gian người dùng có thể:
Liệt kê các nút đã đăng ký bằng lệnh ZZ0000ZZ.
Liệt kê tất cả các bộ đếm lỗi trong một nút bằng lệnh ZZ0001ZZ với ZZ0002ZZ như một tham số.
Truy vấn các giá trị bộ đếm lỗi cụ thể bằng lệnh ZZ0003ZZ, sử dụng cả hai ZZ0004ZZ và ZZ0005ZZ làm thông số.
Giao diện dựa trên YAML¶
Giao diện được mô tả trong đặc tả YAML ZZ0000ZZ
YAML này được sử dụng để tự động tạo các liên kết không gian người dùng thông qua ZZ0000ZZ và điều khiển cấu trúc của liên kết mạng thuộc tính và thao tác.
Ghi chú sử dụng¶
Không gian người dùng trước tiên phải liệt kê các nút để lấy ID của họ.
ID nút hoặc tên nút có thể được sử dụng cho tất cả các truy vấn tiếp theo, chẳng hạn như bộ đếm lỗi.
Bộ đếm lỗi có thể được truy vấn bằng ID lỗi hoặc tên lỗi.
Tham số truy vấn phải được xác định như một phần của uAPI để đảm bảo tính ổn định của giao diện người dùng.
Giao diện hỗ trợ mở rộng trong tương lai bằng cách thêm các loại nút mới và các thuộc tính bổ sung.
Ví dụ: Liệt kê các nút bằng ynl
sudo ynl --family drm_ras --dump list-nodes
[{'device-name': '0000:03:00.0',
'node-id': 0,
'node-name': 'correctable-errors',
'node-type': 'error-counter'},
{'device-name': '0000:03:00.0',
'node-id': 1,
'node-name': 'uncorrectable-errors',
'node-type': 'error-counter'}]
Ví dụ: Liệt kê tất cả các bộ đếm lỗi bằng ynl
sudo ynl --family drm_ras --dump get-error-counter --json '{"node-id":0}'
[{'error-id': 1, 'error-name': 'error_name1', 'error-value': 0},
{'error-id': 2, 'error-name': 'error_name2', 'error-value': 0}]
Ví dụ: Truy vấn bộ đếm lỗi cho một nút nhất định
sudo ynl --family drm_ras --do get-error-counter --json '{"node-id":0, "error-id":1}'
{'error-id': 1, 'error-name': 'error_name1', 'error-value': 0}