Trang này tóm tắt các tính năng chính trong mỗi bản phát hành nhân và cung cấp đường liên kết đến thông tin bổ sung.
Các tính năng mới của nhân 6.12
Phần này giải thích các tính năng mới trong nhân 6.12.
Phân tích tài nguyên về hoạt động phân bổ bộ nhớ
Để hiểu được mức sử dụng bộ nhớ, bạn cần biết vị trí phân bổ.
Kernel 6.12 có một hệ thống phân bổ bộ nhớ mới có tên là hồ sơ phân bổ bộ nhớ (CONFIG_MEM_ALLOC_PROFILING
trong cấu hình).
Với tính năng lập hồ sơ phân bổ bộ nhớ, mỗi hoạt động phân bổ đều được gán cho một dòng nguồn duy nhất để có thể nhanh chóng xác định các vấn đề về hoạt động phân bổ.
Ngoài ra, việc lập hồ sơ phân bổ bộ nhớ:
Được dùng trong giai đoạn kỹ thuật, nhưng có trong hình ảnh GKI tiêu chuẩn.
Bạn có thể bật tính năng này bằng cách sử dụng tham số khởi động
sysctl.vm.mem_profiling
.Hoạt động cho cả mô-đun trong nhân và mô-đun đã tải.
io_uring nhanh hơn với tính năng đọc nhiều lần và sao chép bằng 0
Trong nhân 6.12, các mô-đun statsd
và logd
sử dụng tính năng sao chép bằng sendfile, giúp cải thiện hiệu suất của các mô-đun này.
Ngoài ra, phiên bản nhân này triển khai tính năng đọc nhiều lần, trong đó một thao tác đọc có thể truy xuất nhiều phần dữ liệu cùng một lúc, giúp cải thiện hiệu suất.
Cải thiện khả năng và hoạt động hỗ trợ Bộ lọc gói Berkeley (BPF)
Trong nhân 6.12, chuỗi công cụ BPF đã được di chuyển để hỗ trợ CO-RE và một số tính năng hiện đại. Ngoài ra, trình tải BPF mới cho phép sử dụng BPF hiện đại cho các chương trình thuộc AOSP.
Thực thi proxy
Tính năng thực thi uỷ quyền cho phép trình lập lịch mượn các chu kỳ CPU từ các quy trình có mức độ ưu tiên cao để khôi phục các khoá do các quy trình có mức độ ưu tiên thấp hơn nắm giữ. Tính năng này giúp giảm thiểu các vấn đề về đảo ngược mức độ ưu tiên.
Các tính năng mới của kernel 6.6
Phần này giải thích các tính năng mới trong nhân 6.6.
Hỗ trợ Rust
Nhiều dự án kernel 6.6 sử dụng Rust.
Khoá theo vùng nhớ ảo (VMA)
Nhân 6.6 sử dụng các khoá theo vùng bộ nhớ ảo để giải quyết các vấn đề về tranh chấp với mmap_sem
(trước đây gọi là mmap_lock
). Do đó, những ứng dụng sử dụng số lượng lớn các luồng có thể thấy thời gian khởi chạy giảm tới 20%.
Trình lập lịch biểu Thời hạn ảo đủ điều kiện sớm nhất (EEVDF) thay thế CFS
EEVDF thay thế Completely Fair Scheduler (CFS) để cân bằng tốt hơn quyền truy cập CPU giữa các tác vụ chạy trong thời gian ngắn và thời gian dài.
Giảm mức tiêu thụ điện năng từ các lệnh gọi lại cập nhật bản sao chỉ đọc (RCU)
Tuỳ chọn RCU_LAZY
sử dụng phương thức nhóm gọi lại RCU dựa trên bộ hẹn giờ để tiết kiệm năng lượng. Đối với hệ thống có tải nhẹ hoặc hệ thống ở trạng thái rảnh, lựa chọn này có thể giảm mức tiêu thụ điện năng từ 5% đến 10%.
Khả năng nén bộ nhớ ZRAM tốt hơn
Chế độ cài đặt bản dựng CONFIG_ZRAM_MULTI_COMP
mới cho phép ZRAM nén lại các trang bằng một trong ba thuật toán thay thế. Quá trình nén lại này sẽ giảm thêm bộ nhớ nén, cung cấp thêm dung lượng trống cho các tác vụ đang hoạt động.
Các tính năng mới của nhân 6.1
Phần này giải thích các tính năng mới trong nhân 6.1.
Bảo mật nhanh hơn nhờ tính năng kiểm soát tính toàn vẹn của luồng trong nhân (KCFI)
KCFI thay thế tính toàn vẹn của luồng điều khiển (CFI), giúp giảm chi phí thời gian chạy và không mất chi phí thời gian xây dựng. Chi phí thời gian chạy giảm cho phép bật KCFI ở nhiều nơi hơn so với CFI, đặc biệt là các điểm theo dõi và lệnh gọi của nhà cung cấp.
Ngoài KCFI, kernel 6.1 còn giới thiệu nhiều tính năng bảo mật, chẳng hạn như kiểm tra ranh giới memcpy
nghiêm ngặt và các biện pháp giảm thiểu tấn công suy đoán đường thẳng.
Để biết thêm thông tin về KCFI, hãy xem bài viết Tính toàn vẹn của luồng điều khiển trong nhân.
LRU nhiều thế hệ (MGLRU)
MGLRU đã được thêm vào kernel 6.1 để cải thiện việc quản lý bộ nhớ bằng cách xác định chính xác hơn những trang nào đang được sử dụng. Điểm cải tiến này giúp giảm nhu cầu dừng ứng dụng khi hệ thống gặp phải tình trạng thiếu bộ nhớ. Bản cập nhật này cũng cải thiện trải nghiệm người dùng vì khả năng phản hồi tổng thể của thiết bị sẽ tốt hơn.
Việc triển khai MGLRU cũng bao gồm việc hỗ trợ một cây phong mới an toàn với RCU. Trong một số trường hợp, cây này có thể được dùng để thay thế cây đỏ đen (rbtree). Khi được sử dụng, cây phong an toàn RCU sẽ tăng hiệu suất vì có dấu chân thấp hơn và không có khoá.
Để biết thêm thông tin về MGLRU, hãy xem phần LRU nhiều thế hệ.
Lập lịch
Duy trì và cập nhật trình lập lịch là một khía cạnh quan trọng trong công việc cải thiện nhân. Các bản cập nhật nhân trong phiên bản 6.1 bao gồm:
- Đã thêm tính năng lập lịch dựa trên cụm, giúp tăng hiệu suất bằng cách di chuyển đến các lõi dùng chung bộ nhớ đệm L2.
- Đã xoá phương pháp phỏng đoán biên năng lượng không cần thiết. Bằng cách hạn chế một số hoạt động di chuyển, bản cập nhật này giúp cải thiện mức sử dụng năng lượng lên đến 5%.
- Cải thiện tính năng cân bằng tải để giảm độ trễ khi đánh thức.
- Đã di chuyển thời gian gia hạn RCU được đẩy nhanh sang kthread theo thời gian thực. Bản cập nhật này đã giảm đáng kể các giá trị độ trễ bất thường liên quan đến RCU.
Đồ hoạ
Nhân 6.1 có các phương thức mới để dma-buf xuất và nhập các tệp đồng bộ hoá, phù hợp với nhu cầu về API Video của Vulcan.
Phương thức futex_waitv()
mới giúp đơn giản hoá việc chuyển trò chơi từ các nền tảng khác bằng cách chờ nhiều futex cùng một lúc.
Công cụ gỡ lỗi
Sử dụng Kernel Concurrency SANitizer (KCSAN) trong các bản gỡ lỗi để xác định các điều kiện xung đột trong mã hạt nhân.
Ngoài ra, hãy dùng Trình dọn dẹp bộ nhớ nhân (KMSAN) để tìm các giá trị chưa được khởi tạo trong nhân.
Cải thiện khả năng hỗ trợ ARM64
Nhân 6.1 mang đến nhiều điểm cải tiến cho cấu trúc ARM64, bao gồm:
- Hỗ trợ các tiện ích hẹn giờ ARMv8.6
- Hỗ trợ thuật toán xác thực con trỏ QARMA3
- Hỗ trợ ban đầu cho Tiện ích ma trận có thể mở rộng (SME) ARMv9
- Cải thiện việc vá tính năng thay thế, giúp giảm kích thước hình ảnh của nhân