Linux内核环境下如何申请大块内存?(linux内核使用)

admin3年前云主机25

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

void* x_bootmem = NULL;EXPORT_SYMBOL(x_bootmem);unsigned long x_bootmem_size = 0;EXPORT_SYMBOL(x_bootmem_size);static int __init x_bootmem_setup(char *str){ x_bootmem_size = memparse(str, &str); x_bootmem = alloc_bootmem(x_bootmem_size); printk("Reserved %lu bytes from %p for x\n", x_bootmem_size, x_bootmem); return 1;}__setup("x-bootmem=", x_bootmem_setup);

可见其应用还是比较简单的,不过利弊总是共生的,它不可避免也有其自身的限制:

1.内存申请代码只能连接进内核,不能在模块中使用。

2.被申请的内存不会被页分配器和slab分配器所使用和统计,也就是说它处于系统的可见内存之外,即使在将来的某个地方你释放了它。

3.一般用户只会申请一大块内存,如果需要在其上实现复杂的内存管理则需要自己实现。

在不允许内存分配失败的场合,通过启动内存预留内存空间将是我们唯一的选择。

《Linux内核环境下如何申请大块内存?(linux内核使用)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

云服务器怎么挣钱

云服务器介绍随着科技的不断发展,云计算成为人们生活中必不可少的一部分,而云服务器则是云计算的重要组成部分。简单说,云服务器就是一种基于云计算的虚拟主机,它在云平台上运行,提供像硬件资源、网络带宽、存储...

hostpl

HostPl:创建您的网站的完美选择什么是HostPl?HostPl是一个强大的网站托管服务,为用户提供稳定,安全和快速的网络体验。无论您是个人博客,中小企业或大型公司,HostPl都能满足您的需求。...

5118伪原创工具价格

5118伪原创工具价格如今,越来越多的人选择使用伪原创工具提高文章的生产效率。而在众多的伪原创工具中,5118伪原创工具备受欢迎。那么,5118伪原创工具价格是多少呢?首先,5118伪原创工具作为一款...

福建高防服务租用怎么选择?100G福建高防服务器租用价格是多少?

福建高防服务器租用选择的方法:1、根据所做的业务考虑福建高防服务器的硬件配置,保证网站能快速稳定的运行;2、看福建高防服务器的稳定质量,如是否保证7*24小时不停的运作等;3、选择正规的IDC公司,能...

做外贸用什么服务器

选择适合外贸的服务器,让你的业务更顺畅对于从事外贸的企业来说,服务器是支撑业务的重要基础设施之一。选择合适的服务器,不仅可以提升网站的性能和稳定性,还能够帮助企业迅速、准确地响应客户需求,更好地开展业...

GPU服务器有什么用?泉州GPU服务器租用价格多少钱?

GPU服务器有什么用?众所周知,服务器是网络中的一个重要设备,要接受的人少则几十人,多则几千人的访问,因此对服务器具有大数据吞吐量、高性能的稳定性、长期运行等严格要求。但我们今天了解的是GPU服务器。...