我正在尋找直接從我的C代碼中獲取巨大頁面大小的值,而無需運行bash命令。如何獲得巨大頁面大小的值?
從bash的我能做到這一點
grep pse /proc/cpuinfo > /dev/null && echo '2M huge page size are supported'
grep pdpe1gb /proc/cpuinfo> /dev/null && echo '1G huge page size are supported'
其次如何使用mmap擁有1G大內存頁的大小?
感謝
更新
代碼片段
#include <stdio.h>
#include <limits.h>
#include <hugetlbfs.h>
int main(void){
long result1 = gethugepagesize();
printf("%d\n", result1);
long result2 = gethugepagesizes(NULL, 0);
printf("%d\n", result2);
long result3 = getpagesizes(NULL, 0);
printf("%d\n", result3);
printf("%d\n", PF_LINUX_HUGETLB);
return 0;
}
輸出
2097152
1
2
1048576
這裏gethugepagesize返回2 MB什麼巨大的1Gb頁面?
謝謝,這個功能很有幫助。我將閱讀更多關於這個API的信息,看看如何使用1G大頁面大小的mmap。 – bioinfornatics