Provided by: manpages-ro-dev_4.26.0-1_all 

NUME
get_mempolicy - recuperează politica de memorie NUMA pentru un fir de execuție
BIBLIOTECA
Biblioteca de politici NUMA („Non-Uniform Memory Access”: acces neuniform la memorie) (libnuma, -lnuma)
SINOPSIS
#include <numaif.h>
long get_mempolicy(int *mode,
unsigned long nodemask[(.maxnode + ULONG_WIDTH - 1)
/ ULONG_WIDTH],
unsigned long maxnode, void *addr,
unsigned long flags);
DESCRIERE
get_mempolicy() recuperează politica NUMA a firului apelant sau a unei adrese de memorie, în funcție de
valoarea lui flags.
O mașină NUMA are diferite controloare de memorie cu distanțe diferite față de diferitele CPU-uri.
Politica de memorie definește din ce nod este alocată memoria pentru firul de execuție.
Dacă flags este specificat ca fiind 0, atunci sunt returnate informații despre politica implicită a
firului apelant (așa cum a fost stabilită de set_mempolicy(2)), în memoriile tampon indicate de mode și
nodemask. Valoarea returnată în aceste argumente poate fi utilizată pentru a readuce politica firului la
starea sa din momentul apelului la get_mempolicy() folosind set_mempolicy(2). Atunci când flags este 0,
addr trebuie să fie specificat ca NULL.
Dacă flags specifică MPOL_F_MEMS_ALLOWED (disponibil începând cu Linux 2.6.24), argumentul mode este
ignorat, iar setul de noduri (memorii) pe care firul de execuție are voie să le specifice în apelurile
ulterioare către mbind(2) sau set_mempolicy(2) (în absența oricărui indicator mode flags) este returnat
în nodemask. Nu este permisă combinarea MPOL_F_MEMS_ALLOWED cu MPOL_F_ADDR sau MPOL_F_NODE.
În cazul în care flags specifică MPOL_F_ADDR, atunci sunt returnate informații despre politica care
guvernează adresa de memorie indicată în addr. Această politică poate fi diferită de politica implicită a
firului de execuție dacă mbind(2) sau una dintre funcțiile de ajutor descrise în numa(3) a fost utilizată
pentru a stabili o politică pentru intervalul de memorie care conține addr.
Dacă argumentul mode nu este NULL, atunci get_mempolicy() va stoca modul de politică și orice indicatori
opționali mode flags ai politicii NUMA solicitate în locația indicată de acest argument. Dacă nodemask nu
este NULL, atunci masca de nod asociată politicii va fi stocată în locația indicată de acest argument.
maxnode specifică numărul de ID-uri de nod care pot fi stocate în nodemask, adică ID-ul maxim de nod plus
unu. Valoarea specificată de maxnode este întotdeauna rotunjită la un multiplu de
sizeof(unsigned long)*8.
Dacă flags specifică atât MPOL_F_NODE, cât și MPOL_F_ADDR, get_mempolicy() va returna ID-ul nodului pe
care adresa addr este alocată în locația indicată de mode. În cazul în care nu a fost alocată încă nicio
pagină pentru adresa specificată, get_mempolicy() va aloca o pagină ca și cum firul de execuție ar fi
efectuat un acces de citire (încărcare) la adresa respectivă și va returna ID-ul nodului în care a fost
alocată pagina respectivă.
În cazul în care flags specifică MPOL_F_NODE, dar nu MPOL_F_ADDR, iar politica curentă a firului este
MPOL_INTERLEAVE sau MPOL_WEIGHTED_INTERLEAVE, atunci get_mempolicy() va returna în locația indicată de un
argument mode non-NULL, ID-ul de nod al nodului următor care va fi utilizat pentru intercalarea paginilor
interne ale nucleului alocate în numele firului. Aceste alocări includ paginile pentru fișiere alocate în
memorie în intervalele de memorie ale procesului, alocate cu ajutorul apelului mmap(2) cu indicatorul
MAP_PRIVATE pentru accesări de citire și în intervalele de memorie alocate cu indicatorul MAP_SHARED
pentru toate accesările.
Alte valori ale fanionului sunt rezervate.
Pentru o prezentare generală a politicilor posibile, a se vedea set_mempolicy(2).
VALOAREA RETURNATĂ
În caz de succes, get_mempolicy() returnează 0; în caz de eroare, se returnează -1, iar errno este
configurată pentru a indica eroarea.
ERORI-IEȘIRE
EFAULT O parte din tot intervalul de memorie specificat de nodemask și maxnode indică în afara spațiului
de adrese accesibil.
EINVAL Valoarea specificată de maxnode este mai mică decât numărul de ID-uri de noduri acceptate de
sistem. Sau flags a specificat alte valori decât MPOL_F_NODE sau MPOL_F_ADDR; sau flags a
specificat MPOL_F_ADDR și addr este NULL, sau flags nu a specificat MPOL_F_ADDR și addr nu este
NULL. Sau, flags a specificat MPOL_F_NODE, dar nu MPOL_F_ADDR, iar politica curentă a firelor nu
este MPOL_INTERLEAVE nici MPOL_WEIGHTED_INTERLEAVE. Sau, flags a specificat MPOL_F_MEMS_ALLOWED
fie cu MPOL_F_ADDR, fie cu MPOL_F_NODE; (și mai există și alte cazuri EINVAL).
STANDARDE
Linux.
ISTORIC
Linux 2.6.7.
NOTE
Pentru informații privind suportul de bibliotecă, consultați numa(7).
CONSULTAȚI ȘI
getcpu(2), mbind(2), mmap(2), set_mempolicy(2), numa(3), numa(7), numactl(8)
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 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.
Pagini de manual de Linux 6.9.1 2 mai 2024 get_mempolicy(2)