Catatan rilis kernel

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