Khi lỗ hổng bảo mật Retbleed được giới thiệu vào đầu năm nay, việc giảm thiểu lỗ hổng này đối với các lõi CPU có nguồn gốc từ Skylake và Intel Skylake đã yêu cầu áp dụng Cơ chế đầu cơ hạn chế nhánh gián tiếp (IBRS) đã tiếp tục làm tăng thêm khả năng vượt trội. hiệu suất hộp cho các CPU Intel cũ này. Nhưng hiện được giới thiệu với Linux 6.2 là một kỹ thuật giảm thiểu mới có tên là Theo dõi độ sâu cuộc gọi đang giúp phục hồi một số hiệu suất bị mất đó và từ đó mở rộng tính hữu dụng của các bộ xử lý có nguồn gốc từ Skylake vẫn đang được sử dụng.

Theo dõi độ sâu cuộc gọi đã được các nhà phát triển nhân Intel và Linux thực hiện trong vài tháng qua để tránh sự cần thiết của IBRS cho các thiết kế CPU dựa trên Skylake/Skylake trong việc giảm nhẹ Retbleed. Các nhà phát triển hạt nhân gọi IBRS là”màn trình diễn kinh dị về hiệu suất”, các kỹ sư VMware phàn nàn về hiệu suất bị mất và đây chỉ là một hiệu suất đau đớn khác ảnh hưởng đến tốc độ vượt trội của các bộ xử lý Intel thế hệ trước này.

Theo dõi độ sâu cuộc gọi đã được hợp nhất cho chu kỳ nhân Linux 6.2 hiện đang được phát triển. Mặc dù với Linux 6.2, tính năng giảm thiểu IBRS vẫn là mặc định cho CPU Skylake, nhưng tính năng Theo dõi độ sâu cuộc gọi khi được tích hợp vào nhân có thể dễ dàng được kích hoạt bằng tùy chọn khởi động”retbleed=stuff”.

Để biết độ sâu cuộc gọi như thế nào Việc theo dõi (đã retbleed=stuff) ảnh hưởng đến hiệu suất của Skylake Linux, tôi đã chạy một số điểm chuẩn giảm thiểu mới trên nhân Linux 6.2 Git. Từ nhân Linux 6.2 Git trên máy chủ Xeon E3-1280 v5 (Skylake), tôi đã thử nghiệm các cấu hình nhân sau:

Mặc định-Máy chủ Skylake E3-1280 v5 đang chạy cấu hình sẵn dùng trong kho với tất cả các biện pháp giảm thiểu mặc định. Giảm thiểu Retbleed theo mặc định vẫn đang kích hoạt IBRS.

retbleeed=stuff-Giảm thiểu Retbleed bằng cơ chế nhồi mới (Theo dõi độ sâu cuộc gọi).

retbleed=off-Chỉ vô hiệu hóa các biện pháp giảm thiểu Retbleed nhưng để tất cả các biện pháp giảm thiểu bảo mật CPU khác ở mặc định.

mitigations=off-Không có biện pháp giảm thiểu bảo mật CPU nào được kích hoạt tại thời gian chạy cho máy chủ Skylake này.

Từ đó, nhiều điểm chuẩn Linux đã được thực hiện để xem điều này có ý nghĩa gì đối với hiệu suất Linux trên phần cứng thời Intel Skylake khi tính năng Theo dõi độ sâu cuộc gọi khả dụng để giảm thiểu Đã retbleed nhưng với chi phí thấp hơn.

Ngay lập tức với điểm chuẩn PostMark I/O, đã có một sự cải thiện rõ ràng với retbleed=stuff so với hiệu suất hạt nhân sẵn dùng, mặc định nơi IBRS được kích hoạt trên Skylake. Theo dõi độ sâu cuộc gọi mang lại cải thiện 24% so với hiệu suất mặc định trong PostMark, nhưng chế độ Theo dõi độ sâu cuộc gọi vẫn có hiệu suất khoảng 84% khi chạy mà không có bất kỳ biện pháp giảm thiểu Retbleed nào hoặc 69% hiệu suất khi chạy hệ thống mà không có bất kỳ biện pháp giảm thiểu bảo mật CPU nào.

Đối với điểm chuẩn API ổ cắm mạng Sockperf, tính năng Theo dõi độ sâu cuộc gọi cũng mang lại lợi ích rõ ràng so với hiệu suất mặc định trên Linux 6.2, nhưng tất cả các biện pháp giảm thiểu khác vẫn phát sinh chi phí đáng kể.

Nhưng nếu ngay bây giờ bạn đang chạy Linux hoàn toàn mới trên hệ thống thời Skylake và sử dụng các biện pháp giảm thiểu bảo mật mặc định áp đặt IBRS, với việc chuyển đổi Linux 6.2+ sang Theo dõi độ sâu cuộc gọi ít nhất có thể khôi phục một số hiệu suất bị mất đó.

Thao tác retbleed=stuff cũng giúp khối lượng công việc OpenJDK Java khôi phục hình phạt hiệu suất IBRS trên máy chủ Xeon Skylake này.

Trong nhiều khối lượng công việc khác nhau, việc giảm thiểu Theo dõi độ sâu cuộc gọi là showin g rõ ràng là ít tác động hơn so với giảm thiểu IBRS mặc định cho Retbleed.

Đối với các khối lượng công việc máy chủ Linux khác nhau trên hệ thống Intel Xeon E3-1280 v5 này, việc chạy với Theo dõi độ sâu cuộc gọi giúp tăng hiệu suất (retbleed=stuff) vượt qua các biện pháp giảm thiểu kho nhưng vẫn có chi phí lớn do có liên quan đến các biện pháp giảm thiểu bảo mật CPU khác.

Sự khác biệt Theo dõi độ sâu cuộc gọi rõ ràng làm chậm lại trong các điểm chuẩn vi mô của nhân stress-ng.

Thời gian chuyển đổi ngữ cảnh với tính năng Theo dõi độ sâu cuộc gọi thấp hơn nhiều so với việc sử dụng IBRS cho Retbleed.

Nếu bạn vẫn đang dựa vào bộ xử lý có nguồn gốc từ Skylake/Skylake hiện đang mặc định là IBRS để chống lại Retbleed, thì Cuộc gọi Giảm thiểu theo dõi độ sâu có sẵn trên Linux 6.2+ bằng tùy chọn retbleed=stuff rõ ràng có thể giúp phục hồi một số hiệu suất bị mất. Được cho là vẫn còn chi phí đáng kể từ các giảm thiểu bảo mật CPU khác cần thiết cho các CPU Intel cũ hơn, nhưng ít nhất đó là một cải tiến đáng chú ý so với hiện trạng. Riêng đối với các máy chủ Intel Linux thời Skylake, nơi các mặc định bảo mật hợp lý là đặc biệt cần thiết, tính năng Theo dõi độ sâu cuộc gọi có thể giúp mang lại sức sống mới cho nền tảng cho đến khi nâng cấp phần cứng.

Khi lấy ý nghĩa hình học cho các khối lượng công việc bị ảnh hưởng, hãy chuyển từ nhân Linux 6.2 sẵn có để khởi động với rebleed=stuff đã tăng hiệu suất lên 15%. Nhưng tính năng Theo dõi độ sâu cuộc gọi (retbleed=stuff) đang chạy ở tốc độ 89% so với tốc độ đơn giản là không có giảm thiểu Retbleed (retbleed=off) hoặc 71% hiệu suất của máy chủ Xeon E3-1280 v5 trong đó tất cả các giảm thiểu bảo mật CPU đã bị tắt (giảm thiểu=tắt).

Categories: IT Info