Ich reserviere Speicher mit "riesigen Seiten (1MB Größe)" und mit mmap. Nach dem Zuordnen von 4 GB Speicher schlägt mmap fehl.Gibt es eine Begrenzung des Speichers, der mit großen Seiten belegt wird?
mmap(NULL, memsize, PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS |MAP_POPULATE | MAP_HUGETLB, -1, 0);
hier memsize = 1 GB
ich in einer Schleife obige Aussage nenne. Bis zu 4 Iterationen ist es in Ordnung. In der 5. Iteration ist die mmap fehlgeschlagen.
Die obige Anweisung (ohne hugepages) funktioniert perfekt für eine beliebige Anzahl von Iterationen. Fehle ich irgendwelche Informationen in Bezug auf riesige Seiten? Ich versuchte "MAP_NORESERVE" Flagge auch wie in mmap fail after 4GB erwähnt.
Jede Art von Informationen wird sehr geschätzt. Vielen Dank.
'mmap kehrt scheitern' - das ist nicht sinnvoll – KevinDTimm
Wie viel ist auf Ihrem System verfügbar? Sie können es mit 'cat/proc/meminfo | auflisten grep HugePages'. Zusätzliche Lektüre: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt –
@KevinDTimm: Ich überprüft Rückgabewert (MAP_FAILED) dann nur ich abgeschlossen mmap fehlgeschlagen. – ANTHONY