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。