Một bản vá bị lãng quên được tìm thấy trong nhân Linux ảnh hưởng đến hiệu suất của CPU AMD

Nhân Linux 6.0, dự kiến ​​sẽ được phát hành vào thứ Hai tới, bao gồm một thay đổi nhằm giải quyết các vấn đề về hiệu suất với các hệ thống chạy trên bộ xử lý AMD Zen. Nguồn gốc của sự sụt giảm hiệu suất được phát hiện là do mã được thêm vào cách đây 20 năm để khắc phục sự cố phần cứng trong một số chipset. Vấn đề phần cứng đã được khắc phục từ lâu và không xuất hiện trong các chipset hiện tại, nhưng cách giải quyết cũ cho vấn đề này đã bị lãng quên và trở thành nguyên nhân làm giảm hiệu suất trên các hệ thống dựa trên CPU AMD hiện đại. Các hệ thống mới trên CPU Intel không bị ảnh hưởng bởi giải pháp cũ vì chúng truy cập ACPI bằng trình điều khiển intel_idle riêng chứ không phải trình điều khiển bộ xử lý chung.

Một giải pháp thay thế đã được thêm vào kernel vào tháng 2002 năm 3 để ngăn chặn sự xuất hiện của lỗi trong chipset liên quan đến việc không thiết lập đúng trạng thái rảnh do sự chậm trễ trong việc xử lý tín hiệu STPCLK#. Để khắc phục sự cố, việc triển khai ACPI đã thêm một lệnh WAIT bổ sung, lệnh này làm chậm bộ xử lý để chipset có thời gian chuyển sang trạng thái không hoạt động. Khi lập hồ sơ bằng cách sử dụng hướng dẫn IBS (Lấy mẫu dựa trên hướng dẫn) trên bộ xử lý AMD ZenXNUMX, người ta phát hiện ra rằng bộ xử lý dành một lượng thời gian đáng kể để thực thi sơ khai, dẫn đến việc giải thích không chính xác trạng thái tải của bộ xử lý và đặt chế độ ngủ sâu hơn (C- State) bởi bộ xử lý cpuidle.

Hành vi này được phản ánh qua việc giảm hiệu suất trong các khối lượng công việc thường xuyên luân phiên giữa trạng thái rảnh và bận. Ví dụ: khi sử dụng bản vá vô hiệu hóa thao tác bỏ qua, mức trung bình của thử nghiệm tbench tăng từ 32191 MB/s lên 33805 MB/s.

Nguồn: opennet.ru

Thêm một lời nhận xét