0
我使用「巨大頁面(1MB大小)」和使用mmap分配內存。分配4 GB內存後,mmap返回失敗。使用巨大頁面分配的內存是否有限制?
mmap(NULL, memsize, PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS |MAP_POPULATE | MAP_HUGETLB, -1, 0);
這裏memsize個= 1GB
我打電話上面的循環語句。 Upto 4迭代很好。在第5次迭代中,mmap失敗。
mmap(NULL, memsize, PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS |MAP_POPULATE , -1, 0);
上面的語句(沒有巨大的頁面)完美地適用於任何數量的迭代。我是否缺少任何有關巨大頁面的信息? 我也嘗試過「MAP_NORESERVE」標誌,如mmap fail after 4GB中所述。
任何形式的信息將不勝感激。謝謝。
'mmap returns fail' - 這沒有用 – KevinDTimm
你的系統有多少可用?你可以使用'cat/proc/meminfo |列出它grep HugePages'。補充閱讀:https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt –
@KevinDTimm:我檢查了返回值(MAP_FAILED),然後只有我結束了mmap失敗。 – ANTHONY