Halaman ini merangkum fitur utama dalam setiap rilis kernel dan memberikan link ke informasi tambahan.
Fitur baru Kernel 6.12
Bagian ini menjelaskan fitur baru di kernel 6.12.
Profiling alokasi memori
Kunci untuk memahami penggunaan memori adalah mengetahui tempat alokasi dilakukan.
Kernel 6.12 menyertakan sistem atribusi alokasi memori baru yang disebut
profiling alokasi memori (CONFIG_MEM_ALLOC_PROFILING
dalam konfigurasi).
Dengan pembuatan profil alokasi memori, setiap alokasi diatribusikan ke baris sumber
yang unik sehingga masalah terkait alokasi dapat diidentifikasi dengan cepat.
Selain itu, pembuatan profil alokasi memori:
Digunakan selama fase engineering, tetapi tersedia dalam image GKI standar.
Dapat diaktifkan menggunakan parameter booting
sysctl.vm.mem_profiling
.Berfungsi untuk modul dalam kernel dan modul yang dimuat.
io_uring yang lebih cepat dengan pembacaan multishot dan zero-copy
Di kernel 6.12, modul statsd
dan logd
menggunakan sendfile
zero-copy, sehingga meningkatkan performanya.
Selain itu, versi kernel ini menerapkan pembacaan multishot, yaitu 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, loader 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 dipegang oleh proses prioritas 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.
Kunci per area memori virtual (VMA)
Kernel 6.6 menggunakan kunci area memori virtual per untuk mengatasi masalah pertentangan
dengan mmap_sem
(sebelumnya dikenal sebagai mmap_lock
). Dengan demikian, aplikasi yang menggunakan
thread dalam jumlah besar 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 dengan lebih baik 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 banyak digunakan atau tidak ada aktivitas, opsi ini dapat mengurangi
daya yang digunakan 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. Kompresi ulang ini
lebih lanjut akan memperkecil 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 kernel control flow integrity (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 tracepoint 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 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 hierarki maple yang aman untuk RCU baru, yang, dalam beberapa kasus, dapat digunakan untuk mengganti hierarki red-black (rbtree). Saat digunakan, hierarki maple yang aman untuk RCU akan meningkatkan performa karena jejak yang lebih rendah dan tanpa kunci.
Untuk informasi lebih lanjut tentang MGLRU, lihat Multi-Gen LRU.
Penjadwalan
Mempertahankan dan mengupdate penjadwal adalah aspek utama dalam pekerjaan untuk meningkatkan kernel. Update kernel di 6.1 mencakup:
- Menambahkan penjadwalan yang mempertimbangkan cluster, yang meningkatkan performa dengan bermigrasi ke inti yang berbagi cache L2.
- Menghapus heuristik margin energi yang tidak perlu. Dengan membatasi beberapa migrasi, update ini meningkatkan penggunaan energi hingga 5%.
- Meningkatkan load balancing untuk mengurangi latensi bangun.
- Memindahkan masa tenggang RCU yang dipercepat ke kthread real-time. Update ini sangat mengurangi outlier latensi terkait RCU.
Grafik
Kernel 6.1 berisi metode baru untuk dma-buf guna 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 fitur alternatif yang ditambal sehingga menghasilkan ukuran gambar kernel yang lebih kecil