不然你要我怎么样

彪悍的代码不需要注释

Archive for the ‘malloc’ tag

kmalloc vmalloc malloc区别

3 comments

kmalloc()和vmalloc()介绍

kmalloc()

用于申请较小的、连续的物理内存

1. 以字节为单位进行分配,在<linux/slab.h>中

2. void *kmalloc(size_t size, int flags) 分配的内存物理地址上连续,虚拟地址上自然连续

3. gfp_mask标志:什么时候使用哪种标志?如下:

———————————————————————————————-
情形                                                  相应标志
———————————————————————————————-
进程上下文,可以睡眠                  GFP_KERNEL
进程上下文,不可以睡眠               GFP_ATOMIC
中断处理程序                            GFP_ATOMIC
软中断                                    GFP_ATOMIC
Tasklet                                  GFP_ATOMIC
用于DMA的内存,可以睡眠         GFP_DMA | GFP_KERNEL
用于DMA的内存,不可以睡眠     GFP_DMA | GFP_ATOMIC
———————————————————————————————-

4. void kfree(const void *ptr)

释放由kmalloc()分配出来的内存块
Read the rest of this entry »

转载请注明: 转载自不然你要我怎么样
本文链接地址: kmalloc vmalloc malloc区别

Written by xiangmocheng

九月 9th, 2009 at 2:23 下午

Posted in Embedded,Linux

Tagged with , ,