ChinaUnix.net
相关文章推荐:

allocpages kmalloc vmalloc kmap ioremap getfreepages

本帖最后由 titer1 于 2012-09-28 23:14 编辑 1 kmalloc 底层调用 伙伴系统的 __get_free_pages()函数,vmalloc也是。 kmap没有调用 2 vmalloc 可能睡眠,kmalloc使用gfp_atomic方式分配可能睡眠,(kmalloc睡眠不,决定于分配的标志,gfp_atomic必然不能,否则睡眠之) //网上关于kmalloc睡眠模糊。我查了下lkd,2012-9-28 23:13:37 3 kmalloc 返回线性地址,指向物理连续的一内存区,分配是以页为单位。分配上限是:2^5个...

by titer1 - 内核源码 - 2012-10-02 13:41:44 阅读(4042) 回复(8)

相关讨论

只看了相对简单的kmap函数,理解的结果是,这个函数是把某块高端内存映射到页表,然后返回给用户一个填好vitual字段的 page结构 然后听说ioremap的功能是把io空间映射出来,疑问: ioremap只能操作io空间而不能操作ram空间? 该函数实现原理是? 能否以最简要的句子概括,谢谢!

by wilbur512 - 内核源码 - 2010-06-01 23:05:11 阅读(4820) 回复(5)

大概了解了二者的区别,可还是在具体情况下不知道如何选用。请教各位,这两个函数分别在什么样的情况下适合选用,谢谢。

by minliu - 内核/嵌入技术 - 2006-08-09 15:13:47 阅读(4350) 回复(10)

大概了解了二者的区别,可还是在具体情况下不知道如何选用。请教各位,这两个函数分别在什么样的情况下适合选用,谢谢。

by minliu - 内核源码 - 2006-08-09 15:13:47 阅读(9551) 回复(10)

对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。    内核空间中,从3G到vmalloc_start这段地址是物理内存映射区域(该区域中包含了内核镜像、物理...

by cucugbgb - 虚拟化与云服务 - 2010-10-25 16:44:11 阅读(1837) 回复(0)

对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址是物理内存映射区域(该区域中包含了内核镜像、物...

by hyouyan - Linux文档专区 - 2009-11-27 16:03:14 阅读(1025) 回复(0)

[转]kmalloc, vmalloc分配的内存结构 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址是物理内存映射区...

by mijianbin2008 - Linux文档专区 - 2009-09-18 16:17:36 阅读(603) 回复(0)

kmalloc returns physically contiguous memory, malloc does not guarantee anything about the physical memory mapping. The other main difference is that kmalloc'ed memory is reserved and locked, it cannot be swapped. malloc does not actually allocate physical memory. Physical memory gets mapped later, during use. Memory is subject to fragmentation. You may have many megabytes of free memory left, bu...

by cleverd - Linux文档专区 - 2009-02-01 10:10:24 阅读(1832) 回复(0)

对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址是物理内存映射区域(该区域中包含了内核镜像、物理...

by wxju168 - Linux文档专区 - 2009-01-08 08:35:07 阅读(509) 回复(0)

[color="#000066"]kmalloc, vmalloc分配的内存结构 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址...

by joely.wu - Linux文档专区 - 2008-11-27 16:02:51 阅读(745) 回复(0)

[转]kmalloc, vmalloc分配的内存结构 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。   进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。   内核空间中,从3G到vmalloc_start这段地址是物理内存映射...

by edwinrong - Linux文档专区 - 2008-06-16 15:59:10 阅读(893) 回复(0)