当前位置: 技术问答>linux和unix
关于kmalloc的问题
来源: 互联网 发布时间:2016-08-23
本文导语: 请问kmalloc分配的空间是用户程序3G之后的那段对吧?那请问为啥如果kmalloc 分配大于一个pagesize的内存时要用 PAGE_ALIGN去将它页对齐了?这样做有什么好处? 摘抄一段话 In most instruction sets and OS architectures, allocat...
请问kmalloc分配的空间是用户程序3G之后的那段对吧?那请问为啥如果kmalloc 分配大于一个pagesize的内存时要用 PAGE_ALIGN去将它页对齐了?这样做有什么好处?
摘抄一段话
In most instruction sets and OS architectures, allocation of physical memory is possible only on a“page” granularity
摘抄一段话
In most instruction sets and OS architectures, allocation of physical memory is possible only on a“page” granularity
|
我觉得你说的不正确,kmalloc使用的是内核逻辑地址空间的内存,也就是地位内存,768MB而已(或者896MB,记不清了)。高于768MB小于1G的那个叫做内核虚拟地址空间,需要页表辅助的,这个才是vmalloc分配的内存。而kmalloc分配的内存是与物理内存一一对应的,相差一个PAGE_SHIFT。在x86上就是3G