简介

GFP(Get Free Pages缩写)在include/linux/gfp.h中定义。

GFP_KERNEL
是内核内存分配时最常用的,无内存可用时可引起休眠。
GFP_ATOMIC
用来从中断处理和进程上下文之外的其他代码中分配内存,从不睡眠。
GFP_USER
用来为用户空间页来分配内存,它可能睡眠。
GFP_HIGHUSER
如同 GFP_USER, 但是从高端内存分配, 如果有, 高端内存在下一个子节描述.
GFP_NOIO
根本不允许任何 I/O 初始化。
GFP_NOFS
 这个标志功能如同 GFP_KERNEL, 但是它们增加限制到内核能做的来满足请求。一个 GFP_NOFS 分配不允许进行任何文件系统调用,而 GFP_NOIO 根本不允许任何 I/O 初始化。它们主要地用在文件系统和虚拟内存代码,那里允许一个分配睡眠,但是递归的文件系统调用会是一个坏主意。
Logo

更多推荐