站长论坛

标题: 我的LINUX笔记:内核模块中分配内存 [打印本页]

作者: superadmin    时间: 2008-5-1 10:43
标题: 我的LINUX笔记:内核模块中分配内存
内核模块中分配内存有很多方法和函数:

  1、kmalloc(),这是最常使用的函数,速度快且分配的内存在物理上是连续的,但一般情况下它所能分配的最大内存大小为128k字节。

  2、__get_free_pages(),分配指定连续页的内存,性质同kmalloc()但却可以分配更多的连续的物理内存,当然,和kmalloc一样,其返回值也是内核虚拟地址。

  3、vmalloc(),该函数分配的内存在物理上可能不连续,其分配的内存不但使用起来稍微低效而且无法被外部设备作为DMA传输使用,不推荐在内核模块中使用,只有当需要分配一个大的且只在软件中使用的缓冲时才建议考虑。vmalloc()还无法在原子上下文中使用。




欢迎光临 站长论坛 (http://www.tzlink.com/bbs/) Powered by Discuz! X3.2