Catatan rilis kernel

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