Çekirdek sürüm notları

Bu sayfada, her çekirdek sürümündeki önemli özellikler özetlenmiştir ve ek bilgilere bağlantılar verilmiştir.

Çekirdek 6.12'deki yeni özellikler

Bu bölümde, çekirdek 6.12'deki yeni özellikler açıklanmaktadır.

Bellek ayırma profilleme

Bellek kullanımını anlamanın anahtarı, tahsislerin nerede yapıldığını bilmektir. Çekirdek 6.12, bellek ayırma profilleme (yapılandırmada CONFIG_MEM_ALLOC_PROFILING) adlı yeni bir bellek ayırma ilişkilendirme sistemi içerir. Bellek ayırma profillemesiyle her ayırma, ayırmalarla ilgili sorunların hızlı bir şekilde tanımlanabilmesi için benzersiz bir kaynak satırı ile ilişkilendirilir. Ayrıca, bellek ayırma profilleme:

  • Mühendislik aşamasında kullanılır ancak standart GKI görüntüsünde mevcuttur.

  • sysctl.vm.mem_profiling önyükleme parametresi kullanılarak etkinleştirilebilir.

  • Hem çekirdek içi hem de yüklü modüller için çalışır.

Kopyalamasız ve çoklu okuma ile daha hızlı io_uring

6.12 çekirdeğinde statsd ve logd modülleri, sendfile sıfır kopyasını kullanarak performanslarını artırır.

Ayrıca bu çekirdek sürümü, tek bir okuma işleminin aynı anda birden fazla veri parçası alabileceği çoklu çekim okuma özelliğini uygulayarak performansı artırır.

İyileştirilmiş Berkeley Packet Filter (BPF) özellikleri ve desteği

6.12 çekirdeğinde BPF araç zinciri, CO-RE'yi ve çeşitli modern özellikleri desteklemek için taşındı. Ayrıca yeni bir BPF yükleyici, AOSP'nin bir parçası olan programlar için modern BPF'nin kullanılmasını sağlar.

Proxy yürütme

Proxy yürütme, planlayıcının daha düşük öncelikli süreçler tarafından tutulan kilitleri kurtarmak için yüksek öncelikli süreçlerden CPU döngüsü ödünç almasına olanak tanır. Bu özellik, öncelik tersine çevirme sorunlarını azaltır.

Çekirdek 6.6'daki yeni özellikler

Bu bölümde, çekirdek 6.6'daki yeni özellikler açıklanmaktadır.

Pas desteği

Birden fazla çekirdek 6.6 projesi Rust'ı kullanır.

Sanal bellek alanı (VMA) kilitleri

Çekirdek 6.6, mmap_sem (eski adıyla mmap_lock) ile ilgili çekişme sorunlarını gidermek için sanal bellek alanı başına kilitler kullanır. Bu nedenle, çok sayıda iş parçacığı kullanan uygulamalarda başlatma süreleri %20'ye varan oranda kısalabilir.

CFS'nin yerini en erken uygun sanal son tarih öncelikli (EEVDF) planlayıcısı aldı

EEVDF, kısa ve uzun süre çalışan görevler arasında CPU erişimini daha iyi dengelemek için Tamamen Adil Planlayıcı'nın (CFS) yerini alır.

Okuma kopyası güncellemesi (RCU) geri çağırmalarından kaynaklanan güç tüketimi azaltıldı

RCU_LAZY seçeneği, güç tasarrufu sağlamak için zamanlayıcı tabanlı bir RCU geri çağırma gruplandırma yöntemi kullanır. Az yüklü veya boşta çalışan bir sistemde bu seçenek, tüketilen gücü% 5 ila %10 oranında azaltabilir.

Daha iyi ZRAM bellek sıkıştırması

Yeni CONFIG_ZRAM_MULTI_COMP derleme ayarı, ZRAM'ın sayfaları üç alternatif algoritmadan biriyle yeniden sıkıştırmasına olanak tanır. Bu yeniden sıkıştırma işlemi, sıkıştırılmış belleği daha da küçülterek etkin görevler için daha fazla boş alan sağlar.

Çekirdek 6.1'deki yeni özellikler

Bu bölümde, çekirdek 6.1'deki yeni özellikler açıklanmaktadır.

Çekirdek kontrol akışı bütünlüğü (KCFI) ile daha hızlı güvenlik

KCFI, kontrol akışı bütünlüğünü (CFI) değiştirerek çalışma zamanı maliyetinin düşmesine ve derleme zamanı maliyetinin olmamasına neden olur. Azaltılmış çalışma zamanı maliyeti, KCFI'nin CFI'ye kıyasla daha fazla yerde (özellikle izleme noktaları ve tedarikçi bağlantıları) etkinleştirilmesine olanak tanır.

KCFI'ye ek olarak çekirdek 6.1, katı memcpy sınır kontrolü ve düz çizgi spekülasyonu saldırısı azaltma gibi birden fazla güvenlik özelliğini kullanıma sunar.

KCFI hakkında daha fazla bilgi için Çekirdek kontrol akışı bütünlüğü başlıklı makaleyi inceleyin.

Çok Nesilli LRU (MGLRU)

MGLRU, gerçekten hangi sayfaların kullanıldığını daha iyi tanımlayarak bellek yönetimini iyileştirmek için çekirdek 6.1'e eklendi. Bu iyileştirme, sistemde bellek sıkıntısı yaşandığında uygulamaların durdurulması ihtiyacını azaltır. Bu güncelleme, cihazın genel yanıt vermesi daha iyi olduğu için kullanıcı deneyimini de iyileştirir.

MGLRU'nun uygulanması, bazı durumlarda kırmızı-siyah ağacın (rbtree) yerine kullanılabilecek yeni bir RCU güvenli akçaağaç ağacı desteğini de içerir. RCU güvenli akçaağaç ağacı, daha az yer kaplaması ve kilitsiz olması nedeniyle kullanıldığında performansı artırır.

MGLRU hakkında daha fazla bilgi için Çok Nesil LRU başlıklı makaleyi inceleyin.

Planlama

Planlayıcıyı korumak ve güncellemek, çekirdeği iyileştirme çalışmalarının önemli bir parçasıdır. 6.1'deki çekirdek güncellemeleri şunları içerir:

  • L2 önbelleğini paylaşan çekirdeklere taşınarak performansı artıran küme bilinçli planlama eklendi.
  • Gereksiz enerji marjı sezgisel kuralı kaldırıldı. Bu güncelleme, bazı taşıma işlemlerini sınırlayarak enerji kullanımını %5'e kadar artırır.
  • Uyandırma gecikmesini azaltmak için iyileştirilmiş yük dengeleme.
  • RCU hızlandırılmış ek süreleri gerçek zamanlı bir kthread'e taşındı. Bu güncelleme, RCU ile ilgili gecikme aykırı değerleri büyük ölçüde azalttı.

Grafik

Kernel 6.1, Vulcan Video API'ye olan ihtiyaç doğrultusunda senkronizasyon dosyalarını dışa aktarmak ve içe aktarmak için dma-buf'a yönelik yeni yöntemler içerir.

Yeni futex_waitv() yöntemi, aynı anda birden fazla futex'i bekleyerek oyunların diğer platformlardan taşınmasını kolaylaştırır.

Hata ayıklama araçları

Çekirdek kodundaki yarışları tespit etmek için hata ayıklama derlemelerinde Kernel Concurrency SANitizer'ı (KCSAN) kullanın.

Ayrıca, çekirdekteki ilklenmemiş değerleri bulmak için çekirdek bellek temizleyicisini (KMSAN) kullanın.

ARM64 desteğiyle ilgili iyileştirmeler

6.1 çekirdeği, ARM64 mimarisi için aşağıdakiler de dahil olmak üzere birden fazla iyileştirme sunar:

  • ARMv8.6 zamanlayıcı uzantıları için destek
  • QARMA3 işaretçi kimlik doğrulama algoritması desteği
  • ARMv9 ölçeklenebilir matris uzantısı (SME) için ilk destek
  • Alternatif özelliklerde yapılan iyileştirmeler, daha küçük bir çekirdek resim boyutuna yol açan yamalar