带有或不带有MAP_HUGETLB的mmap对齐

时间:2020-06-18 19:47:04

标签: c

2*1024*1024 = 2097152 = 0x200000
void *ptr = mmap(NULL, 2*1024*1024, PROT_READ | PROT_WRITE, 
                 MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)

0x7fffd2a00000 ==> address of ptr(multiple calling through a loop)
0x7fffd2800000
0x7fffd2600000
0x7fffd2400000
0x7fffd2200000    

void *ptr = mmap(NULL, 2*1024*1024, PROT_READ | PROT_WRITE, 
                 MAP_ANONYMOUS | MAP_PRIVATE | MAP_HUGETLB, -1, 0)
similar results

我调用带有或不带有MAP_HUGETLB的mmap,返回的地址与2MB地址空间对齐。

  1. MAP_HUGETLB的用途是什么?

  2. 为什么无论是否有MAP_HUGETLB标志,mmap总是返回对齐的2MB地址空间?

谢谢

0 个答案:

没有答案