Halaman ini merangkum fitur utama di setiap rilis kernel dan menyediakan link ke informasi tambahan.
Fitur baru kernel 6.12
Bagian ini menjelaskan fitur baru di kernel 6.12.
Pembuatan profil alokasi memori
Kunci untuk memahami penggunaan memori adalah mengetahui tempat alokasi dibuat.
Kernel 6.12 menyertakan sistem atribusi alokasi memori baru yang disebut pembuatan profil alokasi memori (CONFIG_MEM_ALLOC_PROFILING dalam konfigurasi).
Dengan pembuatan profil alokasi memori, setiap alokasi dikaitkan dengan baris sumber unik sehingga masalah alokasi dapat diidentifikasi dengan cepat.
Selain itu, pembuatan profil alokasi memori:
Digunakan selama fase teknik, tetapi tersedia dalam image GKI standar.
Dapat diaktifkan menggunakan parameter booting
sysctl.vm.mem_profiling.Berfungsi untuk modul dalam kernel dan yang dimuat.
io_uring yang lebih cepat dengan pembacaan multishot dan tanpa salinan
Di kernel 6.12, modul statsd dan logd menggunakan sendfile tanpa salinan, sehingga meningkatkan performanya.
Selain itu, versi kernel ini mengimplementasikan pembacaan multishot yang memungkinkan satu operasi pembacaan mengambil beberapa bagian data secara bersamaan, sehingga meningkatkan performa.
Kemampuan dan dukungan Berkeley Packet Filter (BPF) yang ditingkatkan
Di kernel 6.12, toolchain BPF telah dipindahkan untuk mendukung CO-RE dan beberapa fitur modern. Selain itu, pemuat BPF baru memungkinkan penggunaan BPF modern untuk program yang merupakan bagian dari AOSP.
Eksekusi proxy
Eksekusi proxy memungkinkan penjadwal meminjam siklus CPU dari proses prioritas tinggi untuk memulihkan kunci yang dimiliki oleh proses prioritas rendah. Fitur ini mengurangi masalah inversi prioritas.
Fitur baru kernel 6.6
Bagian ini menjelaskan fitur baru di kernel 6.6.
Dukungan Rust
Beberapa project kernel 6.6 menggunakan Rust.
Kunci per area memori virtual (VMA)
Kernel 6.6 menggunakan kunci per area memori virtual untuk mengatasi masalah pertentangan dengan mmap_lock (sebelumnya dikenal sebagai mmap_sem). Dengan demikian, aplikasi yang menggunakan banyak thread mungkin akan melihat waktu peluncuran berkurang hingga 20%.
Penjadwal Earliest Eligible Virtual Deadline First (EEVDF) menggantikan CFS
EEVDF menggantikan Completely Fair Scheduler (CFS) untuk menyeimbangkan akses CPU antara tugas yang berjalan singkat dan lama.
Pengurangan konsumsi daya dari callback read copy update (RCU)
Opsi RCU_LAZY menggunakan metode batching callback RCU berbasis timer untuk menghemat daya. Untuk sistem yang dimuat ringan atau tidak ada aktivitas, opsi ini dapat mengurangi daya yang dipakai sebesar 5% hingga 10%.
Kompresi memori ZRAM yang lebih baik
Setelan build CONFIG_ZRAM_MULTI_COMP baru memungkinkan ZRAM mengompresi ulang halaman dengan salah satu dari tiga algoritma alternatif. Pengompresan ulang ini semakin mengecilkan memori terkompresi, sehingga menyediakan lebih banyak ruang kosong untuk tugas aktif.
Fitur baru kernel 6.1
Bagian ini menjelaskan fitur baru di kernel 6.1.
Keamanan yang lebih cepat dengan integritas aliran kontrol kernel (KCFI)
KCFI menggantikan integritas aliran kontrol (CFI) sehingga mengurangi biaya runtime dan tidak ada biaya waktu build. Biaya runtime yang lebih rendah memungkinkan KCFI diaktifkan di lebih banyak tempat dibandingkan dengan CFI, terutama titik pelacakan dan hook vendor.
Selain KCFI, kernel 6.1 memperkenalkan beberapa fitur keamanan, seperti pemeriksaan batas memcpy yang ketat dan mitigasi serangan spekulasi garis lurus.
Untuk informasi lebih lanjut tentang KCFI, lihat Integritas aliran kontrol kernel.
LRU Multi-Generasi (MGLRU)
MGLRU telah ditambahkan ke kernel 6.1 untuk meningkatkan pengelolaan memori dengan mengidentifikasi halaman mana yang benar-benar digunakan. Peningkatan ini mengurangi kebutuhan untuk menghentikan aplikasi saat sistem mengalami kekurangan memori. Update ini juga meningkatkan pengalaman pengguna karena responsivitas perangkat secara keseluruhan lebih baik.
Implementasi MGLRU juga mencakup dukungan untuk pohon maple baru yang aman untuk RCU, yang dalam beberapa kasus, dapat digunakan untuk menggantikan pohon merah-hitam (rbtree). Saat digunakan, pohon maple yang aman untuk RCU meningkatkan performa karena footprint dan locklessness-nya yang lebih rendah.
Untuk informasi lebih lanjut tentang MGLRU, lihat LRU Multi-Generasi.
Penjadwalan
Mempertahankan dan mengupdate penjadwal adalah aspek penting dalam upaya meningkatkan kernel. Update kernel di 6.1 mencakup:
- Menambahkan penjadwalan yang mendukung cluster, yang meningkatkan performa dengan bermigrasi ke core yang berbagi cache L2.
- Menghapus heuristik margin energi yang tidak diperlukan. Dengan membatasi beberapa migrasi, update ini meningkatkan penggunaan energi hingga 5%.
- Meningkatkan load balancing untuk mengurangi latensi bangun.
- Memindahkan periode tenggang yang dipercepat RCU ke kthread real-time. Update ini sangat mengurangi outlier latensi terkait RCU.
Grafik
Kernel 6.1 berisi metode baru untuk dma-buf untuk mengekspor dan mengimpor file sinkronisasi, yang selaras dengan kebutuhan Vulcan Video API.
Metode futex_waitv() baru menyederhanakan porting game dari platform lain dengan menunggu beberapa futex secara bersamaan.
Alat debug
Gunakan Kernel Concurrency SANitizer (KCSAN) dalam build debug untuk mengidentifikasi race dalam kode kernel.
Selain itu, gunakan Kernel Memory SANitizer (KMSAN) untuk menemukan nilai yang tidak diinisialisasi di kernel.
Peningkatan dukungan ARM64
Kernel 6.1 menghadirkan beberapa peningkatan untuk arsitektur ARM64, termasuk:
- Dukungan untuk ekstensi timer ARMv8.6
- Dukungan untuk algoritma autentikasi pointer QARMA3
- Dukungan awal untuk ARMv9 Scalable Matrix Extension (SME)
- Peningkatan pada patching fitur alternatif yang menghasilkan ukuran image kernel yang lebih kecil