Использование mmap и madvise для огромных страниц
Я хочу выделить память на огромных страницах, используемых машиной Linux. Я вижу, что есть два способа сделать это, используяmmap
а такжеmadvise
.
То есть используяMAP_HUGETLB
флаг сmmap
вызов -
base_ptr_ = mmap(NULL, memory_size_, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
ИMADV_HUGEPAGE
флаг сmadvise
вызов -
madvise(base_ptr_, memory_size_, MADV_HUGEPAGE);
Может ли кто-нибудь объяснить разницу между ними?