Usando mmap e madvise para páginas enormes
Quero alocar memória nas grandes páginas que estão sendo usadas por uma máquina Linux. Vejo que há duas maneiras de fazer isso, usandommap
emadvise
.
Ou seja, usando oMAP_HUGETLB
sinalizar com ommap
ligar -
base_ptr_ = mmap(NULL, memory_size_, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
E aMADV_HUGEPAGE
sinalizar com omadvise
ligar -
madvise(base_ptr_, memory_size_, MADV_HUGEPAGE);
Alguém poderia explicar a diferença entre os dois?