Hướng dẫn sửa đổi bộ xử lý mới nhất của AMD dành cho chip máy chủ EPYC 7002 ‘Rome’ tiết lộ một lỗi mới thú vị (errata) có thể khiến lõi trên chip bị treo sau 1.044 ngày hoạt động (~2,93 năm), nghĩa là bạn sẽ phải thiết lập lại máy chủ để chip chạy chính xác. AMD cho biết họ sẽ không khắc phục sự cố.
Mô tả của AMD về sự cố, ảnh hưởng đến bộ xử lý EPYC thế hệ thứ hai của họ (chip Genoa thế hệ thứ tư của AMD là loại mới nhất), rất ngắn gọn, nhưng có rất nhiều điều cần giải nén.
Vấn đề bắt nguồn từ việc lõi không thoát khỏi trạng thái ngủ CC6, nhưng AMD cho biết thời điểm xảy ra lỗi có thể thay đổi dựa trên trải phổ và tần số REFCLK, tần số sau là đồng hồ tham chiếu giúp chip theo dõi thời gian.
Người dùng Reddit acid_migrain có một lý thuyết hợp lý về thời gian chính xác của hiện tượng treo lõi, nói rằng: “Bất chấp những gì họ nói, vấn đề thực sự biểu hiện sau 1042 ngày và khoảng 12 giờ. TSC đánh dấu ở 2800 MHz và 2800 * 10**6 * 1042,5 ngày gần bằng 0x380000000000000, có quá nhiều số 0 không phải là sự trùng hợp.”
Cách khắc phục rất đơn giản — khởi động lại trước 1.044 ngày hoạt động, việc này sẽ đặt lại CPU để khởi động lại “bộ hẹn giờ” 1.044 ngày của bạn hoặc vô hiệu hóa trạng thái ngủ của CC6.
Bây giờ, trong khi lỗi sự cố lõi 2,93 năm này rất thú vị, thì câu hỏi đặt ra là liệu nó có thực sự quan trọng hay không. Chắc chắn, điều đó quan trọng, mặc dù thực tế là các bản cập nhật và bảo trì bảo mật nên được thực hiện trong khoảng thời gian ngắn hơn nhiều.
Kịch bản thực tế nhất chỉ đơn giản là những kịch bản sử dụng tính năng vá lỗi trực tiếp của Linux để cập nhật mà không cần khởi động lại — điều đó chắc chắn có thể dẫn đến loại thời gian hoạt động kéo dài sẽ gây ra lỗi. Ngoài ra, các máy chủ dành cho các ứng dụng quan trọng thường có thời gian hoạt động kéo dài.
Mặc dù lỗi này rất thú vị, nhưng nó không phải là điểm nổi bật đối với phần lớn người dùng và lỗi xảy ra trong chip chắc chắn không phải là bất thường. CPU hiện đại là thiết bị phức tạp nhất do loài người chế tạo và chúng hầu như luôn được tung ra thị trường với vô số lỗi/lỗi được phát hiện trong hoặc sau khi chip đạt đến bản sửa đổi vận chuyển cuối cùng (bước).
Chip Errata là phổ biến, nhưng không tuyệt vời
Với hàng tỷ bóng bán dẫn đang hoạt động, sẽ không thể tránh khỏi các vấn đề: Không có gì lạ khi một con chip có hàng nghìn lỗi/lỗi trở lên được sửa trong các bước mới hơn của chip hoặc bằng các chỉnh sửa phần sụn trước khi ra mắt. Những lỗi in sai này có thể bao gồm tất cả các loại lỗi, từ các lỗ hổng bảo mật cho đến các cờ hoạt động sai chức năng và các thẻ bộ đệm không hoạt động chính xác và các nhà sản xuất chip sẽ cố gắng hết sức để loại bỏ chúng trước khi ra mắt.
Tuy nhiên, một số sai sót luôn tồn tại, ngay cả trong chip vận chuyển. Chẳng hạn, thế hệ thứ 8 của Intel vẫn còn hơn 150 lỗi được liệt kê và các chip này đã được ra mắt vào năm 2017. Chúng tôi không biết chip Rome có bao nhiêu lỗi vì AMD đã xóa danh sách lỗi đã được giải quyết . Tuy nhiên, chúng tôi biết rằng vẫn còn 39 lỗi in, điều này thực sự có vẻ không quá tệ so với bối cảnh của Intel.
Một số lỗi không được sửa chữa đơn giản vì chúng không gây hại, nhưng ngoài lỗi nghiêm trọng có thể để lại một vectơ tấn công, một số lỗi liên quan đến chức năng đơn giản là không bao giờ được vá. Nhà sản xuất chip cân nhắc các yếu tố như mức độ nghiêm trọng của lỗi, khả năng khắc phục sự cố dễ dàng và thậm chí nếu có một số lượng lỗi đủ đáng kể để xứng đáng quay vòng thêm một bước nữa — đó không phải là một nỗ lực tầm thường.
Tại sao AMD không tìm ra nó sớm hơn? Chà, 2,93 năm dài hơn bất kỳ chu kỳ bốn năm nào. Các chip AMD EPYC Rome đã được phát hành vào cuối năm 2018, vì vậy có lẽ một số khách hàng của AMD đã gặp sự cố này.
Rome sẽ không tham gia Câu lạc bộ thời gian hoạt động
Và sau đó, có những người chỉ muốn tham gia câu lạc bộ thời gian hoạt động và lập kỷ lục. Để làm được điều đó, bạn phải đánh bại máy tính trên tàu vũ trụ Du hành 2. Vâng, cái thứ hai đi vào không gian giữa các vì sao. Máy tính đó đã chạy được 16.735 ngày (hơn 48 năm) và còn tiếp tục tăng.
Đối với các kỷ lục trên mặt đất, 6.014 ngày (16 năm) dường như là kỷ lục cho một máy chủ, nhưng tôi đã thấy nhiều cuộc tranh luận về các ứng cử viên khác cho vương miện. (Cộng đồng /r/uptimeporn/Reddit nhỏ có rất nhiều ví dụ về thời gian hoạt động kéo dài.)
Trong cả hai trường hợp, bạn sẽ không phá được loại kỷ lục đó với bất kỳ chip EPYC Rome nào — lỗi này sẽ không được sửa, do đó, không phải tất cả các lõi của bạn sẽ vượt quá ngưỡng 1.044 ngày trong bất kỳ trường hợp nào. Ghi chú của AMD cho biết họ sẽ không khắc phục được sự cố — có lẽ công ty đã quyết định rằng việc khắc phục sự cố bằng silicon là quá tốn kém hoặc bản sửa lỗi vi mã/phần sụn có quá nhiều chi phí hoạt động hoặc có thể đơn giản là không có đủ khách hàng bị ảnh hưởng để thực hiện sửa chữa đáng giá.
Trong cả hai trường hợp, việc vô hiệu hóa trạng thái ngủ CC6 của máy chủ sẽ giúp Bạn ngủ vào ban đêm hoặc bạn có thể đảm bảo khởi động lại sau mỗi 1.000 ngày hoặc lâu hơn.