MAP_HUGETLB 未定义

MAP_HUGETLB undefined

我想在 Linux 上测试巨大的内存页面分配。只是为了袖子里有另一种方法。但是我的测试根本无法编译。

pa = mmap(0, 1024*1024*2, PROT_READ, MAP_PRIVATE|MAP_HUGETLB, -1, 0)

产生:

error: use of undeclared identifier 'MAP_HUGETLB'

理想情况下,我希望映射一个文件。但匿名记忆也可以。

hugeadm --pool-list 的输出:

  Size      Minimum  Current  Maximum  Default
2097152     1024     1024     1024        *
1073741824  0        0        0

问题是,我如何分配由大页面支持的内存?

您必须在 #include <sys/mman.h> 之前 #define _GNU_SOURCE 因为这是一个非标准标志。