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 dilakukan.
Kernel 6.12 menyertakan sistem atribusi alokasi memori baru yang disebut
profil alokasi memori (CONFIG_MEM_ALLOC_PROFILING
dalam konfigurasi).
Dengan pembuatan profil alokasi memori, setiap alokasi dikaitkan dengan baris sumber yang unik sehingga masalah alokasi dapat diidentifikasi dengan cepat.
Selain itu, pembuatan profil alokasi memori:
Digunakan selama fase engineering, tetapi tersedia di image GKI standar.
Dapat diaktifkan menggunakan parameter boot
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 salinan nol sendfile, sehingga meningkatkan performanya.
Selain itu, versi kernel ini menerapkan pembacaan multishot di mana satu operasi pembacaan dapat mengambil beberapa bagian data secara bersamaan, sehingga meningkatkan performa.
Peningkatan kemampuan dan dukungan Berkeley Packet Filter (BPF)
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 berprioritas tinggi untuk memulihkan kunci yang dipegang oleh proses berprioritas lebih 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.
Penguncian per area memori virtual (VMA)
Kernel 6.6 menggunakan kunci per-area memori virtual untuk mengatasi masalah pertentangan dengan mmap_sem
(sebelumnya dikenal sebagai mmap_lock
). Dengan demikian, aplikasi yang menggunakan banyak thread mungkin mengalami pengurangan waktu peluncuran 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.
Mengurangi konsumsi daya dari callback update salinan baca (RCU)
Opsi RCU_LAZY
menggunakan metode pengelompokan callback RCU berbasis timer untuk
menghemat daya. Untuk sistem yang tidak terlalu banyak memproses atau dalam kondisi tidak aktif, opsi ini dapat mengurangi daya yang dikonsumsi 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. Rekompresi ini
lebih mengecilkan memori yang dikompresi, 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 alur kontrol kernel (KCFI)
KCFI menggantikan integritas alur 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 mengetahui informasi lebih lanjut tentang KCFI, lihat Integritas alur kontrol kernel.
LRU Multi-Generasi (MGLRU)
MGLRU telah ditambahkan ke kernel 6.1 untuk meningkatkan pengelolaan memori dengan lebih baik 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 red-black (rbtree). Jika digunakan, pohon maple yang aman untuk RCU meningkatkan performa karena jejaknya yang lebih kecil dan tanpa penguncian.
Untuk mengetahui informasi lebih lanjut tentang MGLRU, lihat LRU Multi-Generasi.
Penjadwalan
Memelihara dan mengupdate penjadwal adalah aspek penting untuk meningkatkan kualitas kernel. Update kernel di 6.1 mencakup:
- Menambahkan penjadwalan yang kompatibel dengan cluster, yang meningkatkan performa dengan bermigrasi ke core yang berbagi cache L2.
- Menghapus heuristik margin energi yang tidak perlu. Dengan membatasi beberapa migrasi, update ini meningkatkan pemanfaatan energi hingga 5%.
- Peningkatan load balancing untuk mengurangi latensi aktif.
- Memindahkan masa tenggang yang dipercepat RCU ke kthread real-time. Update ini sangat mengurangi pencilan latensi terkait RCU.
Grafik
Kernel 6.1 berisi metode baru untuk dma-buf dalam mengekspor dan mengimpor file sinkronisasi, yang sesuai 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 kondisi persaingan dalam kode kernel.
Selain itu, gunakan Kernel Memory SANitizer (KMSAN) untuk menemukan nilai yang belum 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 penunjuk QARMA3
- Dukungan awal untuk ARMv9 Scalable Matrix Extension (SME)
- Peningkatan pada penambalan fitur alternatif yang menghasilkan ukuran image kernel yang lebih kecil