我希望直接从我的 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'
其次如何使用具有1G大页面大小的mmap?
thanks
Update
片段代码
#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;
}
Output
2097152
1
2
1048576
这里 gethugepagesize 返回 2 Mb 那么 1Gb 大页面呢?
试试这个。
#include <hugetlbfs.h>
int getpagesizes(long pagesizes[], int n_elem);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)