Ich erkunde die Möglichkeit, das Text- und Datensegment mit riesigen Seiten zu unterstützen, die dem Handbuch in https://github.com/libhugetlbfs/libhugetlbfs/blob/master/HOWTO folgen.Verwendung von rigidpages für Text- und Datensegmente
Ich habe die Anwendung wie vorgeschlagen neu verknüpft, indem ich "-B/usr/share/libhugetlbfs -Wl, - hugetlbfs-align" hinzugefügt und die Anwendung mit "hugectl --text --data --heap --bss" gestartet habe/Pfad/zu/meiner/Anwendung ".
Aber ich bin nicht sehr sicher, wie zu überprüfen, ob die Daten und Textsegmente tatsächlich in die Dateien auf dem hugetlbfs-Dateisystem kopiert werden. Wenn man die/proc/{pid}/maps überprüft, kann man sehen, dass die rigidageseiten für Heap, aber nicht für Text- und Datensegmente verwendet werden, da die ersten beiden Adressbereiche der Anwendung, nicht aber dem rigipage-Dateisystem zugeordnet werden .
Ist mein Verständnis korrekt? Tatsächlich vermute ich, dass meine Schlussfolgerung, dass riesige Seiten für den Heap von/proc/{pid}/maps verwendet werden, ebenfalls falsch ist.
Wie soll ich überprüfen, ob die Daten und Textsegmente in den riesigen Seiten gesichert sind? Ich weiß, dass Daten und Textsegmente in das hugetlbfs-Dateisystem kopiert werden, wenn es erfolgreich ist, aber wie wird es überprüft?
Danke!
Ausgabe von/proc/pid {}/Karten
00400000-00d2c000 r-xp 00000000 fd:02 46153351 /path/to/my/application
00f2b000-00fa3000 rw-p 0092b000 fd:02 46153351 /path/to/my/application
00fa3000-00fbb000 rw-p 00000000 00:00 0
02a0c000-02a2d000 rw-p 00000000 00:00 0 [heap]
40000000-80000000 rw-p 00000000 00:15 2476090 /dev/hugepages-1G/libhugetlbfs.tmp.nS7exn (deleted)
Siehe auch/proc/pid $/smaps für detaillierte Informationen über jede Zuordnung, einschließlich anonyme riesige Seiten. BSS ist ein anonymes Mapping wie der Heap und verwendet transparente rigogemages für Mappings, die ausreichend ausgerichtet sind. –