Kmalloc可以申请的最大内存
Kmalloc申请的最大内存
以前虽然读过源码,但是对于它的申请上限确实没注意过。下面分析下,下面是kmalloc的源码。
可以看出,如果想知道kmalloc能申请的范围,需要跳转到<linux/kmalloc_sizes.h>文件中观察。下图便是包含的<linux/kmalloc_sizes.h>文件
可以看出,kmalloc一般情况下的上限是128K,但是如果打开了KMALLOC_MAX_SIZE这个宏,可以申请的内存会更大,如果想要知道上限的话,需要知道KMALLOC_MAX_SIZE的大小,这个宏以及其相关的宏的定义如下:
根据上面的宏去分析,可以得出KMALLOC_MAX_SIZE为8M大小,所以在我的这台计算机上,可以使用kmalloc申请的最大存储区域为8M。