Etrafta dolaştım ve kmalloc
bitişik fiziksel bellek blokları elde edeceğiniz garantili olduğundan, çoğu insanın kullanımını savunan buldum . Bununla birlikte, istediğiniz kmalloc
bitişik bir fiziksel blok bulunamazsa başarısız olabilir gibi görünüyor .
Bitişik bir bellek bloğuna sahip olmanın avantajları nelerdir? Özellikle, neden bir sistem çağrısında bitişik fiziksel bellek bloğuna ihtiyacım olsun ki ? Kullanmamam için herhangi bir sebep var mı ?
Son olarak, bir sistem çağrısının işlenmesi sırasında bellek ayıracak olsaydım, belirtmeli miyim? Bir sistem çağrısı atomik bağlamda mı yürütülür?vmalloc
GFP_ATOMIC
GFP_ATOMIC
Tahsis, yüksek önceliklidir ve uyumaz. Bu, kesinti işleyicilerinde, alt yarılarda ve uyuyamadığınız diğer durumlarda kullanılacak bayraktır.
GFP_KERNEL
Bu normal bir tahsisattır ve bloke olabilir. Bu, uyumak için güvenli olduğunda işlem bağlam kodunda kullanılacak bayraktır.
vmalloc
Kernel 5.2 ile daha hızlı (Q2 2019)