7
vmalloc和kmalloc有什么区别?
我到处搜寻,发现大多数人都提倡使用kmalloc,因为可以确保您获得连续的物理内存块。但是,kmalloc如果找不到所需的连续物理块,似乎也可能失败。 拥有连续的内存块有什么好处?具体来说,为什么我需要在系统调用中有一个连续的物理内存块?有什么原因我不能仅仅使用? 最后,如果要在处理系统调用期间分配内存,我应该指定吗?系统调用是否在原子上下文中执行?vmallocGFP_ATOMIC GFP_ATOMIC 分配是高优先级,并且不休眠。这是在中断处理程序,下半部分和其他您无法入睡的情况下使用的标志。 GFP_KERNEL 这是正常分配,可能会阻塞。当可以安全睡眠时,这是在进程上下文代码中使用的标志。
113
c
linux-kernel
kmalloc
vmalloc