INTEL-

Trong hai năm nay, chúng tôi đã thấy nhiều bản vá mã nguồn mở xung quanh các hướng dẫn ENQCMD cho trình biên dịch mã và nhân Linux. Hỗ trợ Enqueue Stores này là một phần của Trình tăng tốc truyền dữ liệu của Intel đi kèm với Xeon”Sapphire Rapids”có thể mở rộng. Nhưng ngay cả khi Sapphire Rapids không ra mắt cho đến cuối năm nay, mã nhân Linux đã được hợp nhất đang buộc vô hiệu hóa hỗ trợ hướng dẫn ENQCMD vì hỗ trợ nhân hiện tại được coi là”bị hỏng không thể sửa chữa”và sẽ cần được làm lại.

Trong những tháng gần đây, các bit nhân Linux đã kết hợp với nhau cho của Intel DSA (Data Streaming Accelerator) và xử lý hướng dẫn ENQCMD cùng với hạt nhân liên quan hoạt động như trên Trạng thái của người giám sát XSAVES .

ENQCMD cho phép gửi nguyên tử bộ mô tả công việc tới một thiết bị và được viết rõ hơn qua tài liệu hạt nhân PRM của Intel .

Mặc dù mã đã là một phần của hạt nhân dòng chính, nhưng được gửi đến hôm nay như một phần của bản sửa lỗi x86/khẩn cấp cho Linux 5.13, hiện đang buộc vô hiệu hóa mã tính năng ENQCMD/ENQCMDS trong hạt nhân.

bản vá buộc vô hiệu hóa hỗ trợ tính năng ENQCMD giải thích,” Trong khi giải thích những nỗi kinh hoàng liên quan đến XSAVE đã được giới thiệu với bộ phận giám sát/người dùng, việc bổ sung chức năng liên quan đến ENQCMD gần đây đã xuất hiện trên radar và biến bị hỏng tương tự… [Khi được gọi thông qua lệnh gọi hàm SMP từ mã IOMMU/SMV] bị hỏng không thể sửa chữa được. Nhận xét trong mã tuyên bố rằng có thể gọi điều này trong IPI là an toàn, nhưng đó chỉ là suy nghĩ viển vông… Cam kết vi phạm không hoàn nguyên một cách rõ ràng, nhưng đủ để buộc vô hiệu hóa X86_FEATURE_ENQCMD và xóa mã update_pasid () bị hỏng khiến nó bị rối loạn toàn bộ. của mã lõi x86 là sai một cách trắng trợn, vì vậy việc xóa chúng sẽ là quá mức cần thiết. Vì không có gì cho phép e PASID bit trong IA32_XSS MSR, được yêu cầu để làm cho điều này thực sự hoạt động, điều này không thể dẫn đến hồi quy ngoại trừ các vụ đắm tàu ​​ngoài cây có liên quan, nhưng chúng đã bị hỏng hôm nay.

Bản vá được gửi trong khuôn khổ x86/các bản sửa lỗi khẩn cấp cho Linux 5.13 tóm tắt là” Buộc vô hiệu hóa hướng dẫn ENQCMD [S] hỗ trợ và xóa update_pasid () vì không đủ bảo vệ chống lại Sửa đổi trạng thái FPU trong bối cảnh gián đoạn, trong số các vấn đề khủng khiếp xstate khác đang được giải quyết tại thời điểm này. Điều này giới hạn sự cố rò rỉ cho đến khi kích hoạt thích hợp.

Điều quan trọng cần lưu ý là ở đây, vấn đề là mã nhân (phần mềm) bị hỏng xung quanh ENQCMD/ENQCMDS chứ không phải do phần cứng chưa được phát hành. Mã do Intel gửi để kích hoạt hỗ trợ hóa ra không phải là lỗi trong khi đã hoạt động theo cách của nó vào hạt nhân dòng chính và bây giờ cần phải bị vô hiệu hóa cho đến khi nó có thể được làm lại.

Chúng ta sẽ xem mất bao lâu trước khi mã hạt nhân được làm lại để tính năng ENQCMD được kích hoạt lại. Sapphire Rapids được báo cáo sẽ xuất xưởng vào cuối năm nay nhưng do nhịp phát hành hạt nhân và mã tính năng mới bị giới hạn trong khoảng thời gian cửa sổ hợp nhất, chúng ta sẽ xem các ngôi sao sắp xếp như thế nào nếu hỗ trợ Data Streaming Accelerator sẽ sẵn sàng hoạt động tại-khởi chạy với nhân dòng chính hoặc nếu bây giờ có lẽ sẽ có một số chậm trễ với hỗ trợ Linux hạng nhất thông thường của Intel khi khởi chạy.

Nhận xét mã vô hiệu hóa ENQCMD chỉ đơn giản đặt nó là”Buộc vô hiệu hóa vì nó bị hỏng không thể sửa chữa.”Điều này đã được gửi dưới dạng bản vá cho cửa sổ hợp nhất Linux 5.13 hiện tại nhưng cũng đã được sao chép để ổn định, vì vậy cũng sẽ bị vô hiệu hóa đối với loạt phiên bản ổn định của nhân Linux hiện tại trong những ngày tới.

Categories: IT Info