alloc_hugepages(2)

NUME
alloc_hugepages, free_hugepages - alocă sau eliberează pagini imense

SINOPSIS
void *syscall(size_t size;
              SYS_alloc_hugepages, int key,
              void addr[size], size_t size,
              int prot, int flag);
int syscall(SYS_free_hugepages, void *addr);

Notă: Nu există nicio funcție învăluitoare (wrapper) glibc pentru aceste apeluri de sistem astfel că este necesară utilizarea a syscall(2).

DESCRIERE
Apelurile de sistem alloc_hugepages() și free_hugepages() au fost introduse în Linux 2.5.36 și eliminate din nou în Linux 2.5.54. Ele existau numai pe i386 și ia64 (atunci când erau construite cu CONFIG_HUGETLB_PAGE). În Linux 2.4.20, numerele de apel de sistem există, dar apelurile eșuează cu eroarea ENOSYS.

Pe i386, componentele electronice de gestionare a memoriei știu despre paginile obișnuite (4 Kio) și paginile imense (2 sau 4 Mio). În mod similar, ia64 știe despre pagini imense de mai multe dimensiuni. Aceste apeluri de sistem servesc la cartografierea paginilor imense în memoria procesului sau la eliberarea lor din nou. Paginile imense sunt blocate în memorie și nu sunt interschimbate (realocate).

Argumentul key este un identificator. Atunci când este zero, paginile sunt private și nu sunt moștenite de procesele-copil. Dacă este pozitiv, paginile sunt partajate cu alte aplicații care utilizează același key și sunt moștenite de procesele-copil.

Argumentul addr din free_hugepages() indică ce pagină este eliberată: a fost valoarea de întoarcere a unui apel la alloc_hugepages() (memoria este eliberată efectiv pentru prima dată când toți utilizatorii au eliberat-o). Argumentul addr al alloc_hugepages() este o indicație, pe care nucleul o poate urma sau nu. Adresele trebuie să fie aliniate corespunzător.

Argumentul size este lungimea segmentului necesar. Acesta trebuie să fie un multiplu al dimensiunii imense a paginii.

Argumentul prot specifică protecția de memorie a segmentului. Acesta este unul dintre PROT_READ, PROT_WRITE și PROT_EXEC.

Argumentul flag este ignorat, cu excepția cazului în care key este pozitiv. În acest caz, dacă flag este IPC_CREAT, atunci se creează un nou segment de pagină imensă atunci când nu există niciunul cu cheia (key) dată. Dacă acest indicator nu este definit, atunci ENOENT este returnat atunci când nu există niciun segment cu cheia (key) dată.

VALOAREA RETURNATĂ
În caz de succes, alloc_hugepages() returnează adresa virtuală alocată, iar free_hugepages() returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

ENOSYS
    Apelul de sistem nu este acceptat pe acest nucleu.

FIȘIERE

/proc/sys/vm/nr_hugepages
    Numărul de pagini „hugetlb” configurate. Acesta poate fi citit și scris.

/proc/meminfo
    Oferă informații despre numărul de pagini „hugetlb” configurate și despre dimensiunea acestora în cele trei variabile HugePages_Total, HugePages_Free și Hugepagesize.

STANDARDE
Linux pe procesoarele Intel.

ISTORIC
Aceste apeluri de sistem au dispărut; ele au existat doar în Linux 2.5.36 până la Linux 2.5.54.

NOTE
Acum poate fi folosit în schimb sistemul de fișiere „hugetlbfs”. Memoria susținută de pagini imense (în cazul în care procesorul le acceptă) este obținută prin utilizarea mmap(2) pentru cartografierea fișierelor în acest sistem de fișiere virtual.

Numărul maxim de pagini imense poate fi specificat cu ajutorul parametrului de pornire hugepages=.

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.