Kmalloc可以申请的最大内存

本文介绍了kmalloc函数在Linux内核中的最大内存分配限制。通常情况下,kmalloc的上限为128K,但通过配置KMALLOC_MAX_SIZE宏,这一限制可以扩展到8M。文章深入分析了相关宏定义及配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kmalloc申请的最大内存

以前虽然读过源码,但是对于它的申请上限确实没注意过。下面分析下,下面是kmalloc的源码。

842584-20151213210756856-2105081714.jpg

 

可以看出,如果想知道kmalloc能申请的范围,需要跳转到<linux/kmalloc_sizes.h>文件中观察。下图便是包含的<linux/kmalloc_sizes.h>文件

842584-20151213210802247-1154033234.jpg

 

可以看出,kmalloc一般情况下的上限是128K,但是如果打开了KMALLOC_MAX_SIZE这个宏,可以申请的内存会更大,如果想要知道上限的话,需要知道KMALLOC_MAX_SIZE的大小,这个宏以及其相关的宏的定义如下:

842584-20151213210804278-1333768610.jpg

 

842584-20151213210806184-362215440.jpg

 

 

 

 

842584-20151213210807450-2042157200.jpg

 

根据上面的宏去分析,可以得出KMALLOC_MAX_SIZE8M大小,所以在我的这台计算机上,可以使用kmalloc申请的最大存储区域为8M





转载于:https://www.cnblogs.com/dchipnau/p/5043580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值