我是否正确地假设使用kmem_cache_create
和kmem_cache_alloc
创建并分配的内存块是连续的?
答案 0 :(得分:1)
AFAIK,kmalloc()和kmem_cache _ *()API正在返回连续内存 - 由slab分配器处理....
vmalloc()可用于询问大块内存,它将返回"几乎连续的"内存(表示连续的虚拟地址区域)。
答案 1 :(得分:1)
因此,当您调用kmem_cache_alloc
时,它会返回一块内存,其中包含一个或多个连续页面。
但如果你两次打电话给kmem_cache_alloc
,那么你获得的2块内存可能不会连续。
并且kmem_cache_create
仅为kmem_cache创建并初始化数据结构,并且不分配内存。