20 yıllık geliştirme sürecinin ardından Linux 6.12 ile ana çekirdeğe dahil edilen CONFIG_PREEMPT_RT mimarisiyle finansal HFT, KVM vCPU sanallaştırma ve düşük gecikmeli veri akışlarında en kötü durum gecikme dalgalanmasını (worst-case jitter) hesaplayın.
| Cekirdek Modeli | Kilit Mekanizmasi | Kesme (IRQ) Isleyisi | Max Jitter (Stres Altinda) | Determinizm |
|---|---|---|---|---|
| Linux 6.12+ PREEMPT_RT | rt_mutex (Sleeping Locks + Oncelik Mirasi) | Tum IRQ/SoftIRQ'lar Preemptible Thread'lerde | < 70 µs (Cok Dusuk) | Gercek Zamanli |
| Preempt Dynamic | Klasik Spinlock + Cekirdek Calisma Aninda Gecis | Yari Preemptible, SoftIRQ birikimi mumkun | ~ 400 - 900 µs | Orta Duzey |
| Preempt Voluntary | Klasik Spinlock (Uzun kilitli bolgeler) | Kesmeler zamanlayiciyi dondurabilir | ~ 2.500 - 5.000 µs | Genel Sunucu |
| Preempt None | Hicbir cekirdek onceliklendirmesi yok | Tum cekirdek kilitlenir, toplu hesaplama | > 12.000 µs | Toplu Islem (Batch) |
# rt-tests paketi ile deterministik gecikme (jitter) dogrulama komutu sudo cyclictest --mlockall --smp --priority=85 --interval=200 --distance=0 --duration=5m --histogram=1000
Standart bir Linux çekirdeğinde (örneğin Ubuntu Server varsayılanı olan PREEMPT_DYNAMIC veya PREEMPT_VOLUNTARY), çekirdek kodunun büyük bölümleri klasik spinlock'lar ile korunur. Bir spinlock tutulduğunda CPU üzerinde önceliklendirme (preemption) tamamen kapatılır.
Ağır disk I/O, sayfa tahsisi veya ağ kartı kesme fırtınası (interrupt storm) anında, en yüksek önceliğe sahip kullanıcı süreci bile çekirdeğin kilidi bırakmasını beklemek zorunda kalır. Bu durum, mikrosaniyeler içinde yanıt vermesi gereken algoritmik alım-satım motorlarında veya KVM vCPU iş parçacıklarında 2.000 µs ila 15.000 µs (2-15 ms) arasında öngörülemeyen zamanlama dalgalanmalarına (jitter) yol açar.
Linux 6.12 ile birlikte çekirdeğe harici yama kurma zorunluluğu bitti; CONFIG_PREEMPT_RT=y doğrudan ana çekirdek kod tabanına entegre edildi. Bu mimaride çekirdek seviyesindeki tüm spinlock'lar uyutulabilir rt_mutex (sleeping locks with priority inheritance) yapılarıyla değiştirildi.
Ayrıca neredeyse tüm donanım kesmeleri (hardirq ve softirq) önceliklendirilebilir çekirdek iş parçacıklarına dönüştürüldü. Sonuç olarak ağır stres altında bile en kötü durum zamanlama gecikmesi 70 mikrosaniyenin altına düşer. isolcpus ve nohz_full ile desteklendiğinde KVM sanallaştırma vCPU gecikmesi fiziksel bare-metal seviyesinde deterministik hale gelir.