当前位置: 技术问答>linux和unix
linux内核 怎么能增加虚拟内存?
来源: 互联网 发布时间:2016-05-24
本文导语: 我的服务器是4G内存,系统是AS5.0PAE,我编写驱动,想在内核分配一段逻辑上连续的空间,大概200M左右,用Vmalloc分不到那么多,因为虚拟空间不够,虚拟空间大概是这样的,内核一共1G,前面有896M,8M 后面有几十k吧,...
我的服务器是4G内存,系统是AS5.0PAE,我编写驱动,想在内核分配一段逻辑上连续的空间,大概200M左右,用Vmalloc分不到那么多,因为虚拟空间不够,虚拟空间大概是这样的,内核一共1G,前面有896M,8M 后面有几十k吧,这样算下来我的虚拟空间就是1G-896M-8M左右,不知道我怎么才能获得逻辑上连续的200M的空间?有没有一种映射机制,能吧896M那段物理上不连续的映射成连续的,就想vmalloc这样的函数?
|
32位系统的话就是这样,除非你减小用户地址空间。
如果是64位的话,vmalloc地址空间是固定的,好像有32TB(x86-64架构是0xffffc20000000000至0xffffe1ffffffffff之间的32TB)
服务器的话,换成64位的试试。
如果是64位的话,vmalloc地址空间是固定的,好像有32TB(x86-64架构是0xffffc20000000000至0xffffe1ffffffffff之间的32TB)
服务器的话,换成64位的试试。
|
试一下启动kernel时加上参数vmalloc=256M指定vmalloc区域的最小值。
不过内存足够多的话,建议直接用kmalloc。
不过内存足够多的话,建议直接用kmalloc。
|
貌似你问过了。。帮顶吧
|
哦,我也来学习