Linux内核环境下如何申请大块内存?linux内核申请内存的方式有哪些




Linux内核环境下如何申请大块内存?linux内核申请内存的方式有哪些

2022-07-20 20:23:51 网络知识 官方管理员

在Linux内核环境下,申请大块内存的成功率随着系统运行时间的增加而减少,虽然可以通过vmalloc系列调用申请物理不连续但虚拟地址连续的内存,但毕竟其使用效率不高且在32位系统上vmalloc的内存地址空间有限。所以,一般的建议是在系统启动阶段申请大块内存,但是其成功的概率也只是比较高而已,而不是100%。如果程序真的比较在意这个申请的成功与否,只能退用启动内存(BootMemory)。下面就是申请并导出启动内存的一段示例代码:

void*x_bootmem=NULL;EXPORT_SYMBOL(x_bootmem);unsignedlongx_bootmem_size=0;EXPORT_SYMBOL(x_bootmem_size);staticint__initx_bootmem_setup(char*str){x_bootmem_size=memparse(str,&str);x_bootmem=alloc_bootmem(x_bootmem_size);printk("Reserved%lubytesfrom%pforx\n",x_bootmem_size,x_bootmem);return1;}__setup("x-bootmem=",x_bootmem_setup);

发表评论:

最近发表
网站分类
标签列表