0
我在內核驅動中經常分配大量的內存。哪個內存分配API更好用,爲什麼?在linux內核中選擇內存分配api頻繁地分配大內存
我在內核驅動中經常分配大量的內存。哪個內存分配API更好用,爲什麼?在linux內核中選擇內存分配api頻繁地分配大內存
如果您需要大量分配,kmalloc()
不是一個好主意,因爲一旦物理地址空間變成碎片,大型分配將頻繁失敗。
所以vmalloc()
/vfree()
是最有可能去的方式 - 除非你需要分享與硬件設備的緩衝區,在這種情況下考慮的CMA(連續內存分配器),dma_alloc_from_contiguous()
/dma_release_from_contiguous()
。
''kmalloc'與'GFP_KERNEL'有什麼錯? – bolov
@bolov kmalloc可以分配,但它可能比緩存(kmemcache)慢,我只想符合。 – Chinna
好的。我在問,因爲我只是Linux內核的初學者。 – bolov