getcpu(2) System Calls Manual getcpu(2) NUME getcpu - determina CPU-ul i nodul NUMA pe care ruleaza firul apelant BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #define _GNU_SOURCE /* Consultai feature_test_macros(7) */ #include int getcpu(unsigned int *_Nullable cpu, unsigned int *_Nullable node); DESCRIERE Apelul de sistem getcpu() identifica procesorul i nodul pe care se executa in prezent firul sau procesul apelant i le scrie in numerele intregi indicate de argumentele cpu i nod. Procesorul este un numar intreg mic i unic care identifica un procesor. Nodul este un identificator mic unic care identifica un nod NUMA. Atunci cand cpu sau nod este NULL, nu se scrie nimic in indicatorul respectiv. Informaiile plasate in cpu sunt garantate a fi actuale doar in momentul apelului: daca afinitatea procesorului nu a fost fixata folosind sched_setaffinity(2), nucleul poate schimba procesorul in orice moment; (in mod normal, acest lucru nu se intampla, deoarece planificatorul incearca sa minimizeze micarile intre CPU-uri pentru a menine memoria cache in funciune, dar este posibil). Apelantul trebuie sa ia in considerare posibilitatea ca informaiile returnate in cpu i node sa nu mai fie actuale in momentul in care apelul returneaza. VALOAREA RETURNATA In caz de succes, se returneaza 0. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EFAULT Argumentele indica in afara spaiului de adrese al procesului apelant. STANDARDE Linux. ISTORIC Linux 2.6.19 (x86-64 i i386), glibc 2.29. Diferene intre biblioteca C i nucleu Apelul de sistem al nucleului are un al treilea argument: int getcpu(unsigned int *cpu, unsigned int *node, struct getcpu_cache *tcache); Argumentul tcache este nefolosit incepand cu Linux 2.6.24 i (atunci cand se invoca direct apelul de sistem) ar trebui sa fie specificat ca NULL, cu excepia cazului in care este necesara portabilitatea la Linux 2.6.23 sau la o versiune anterioara. In Linux 2.6.23 i versiunile anterioare, daca argumentul tcache nu era NULL, atunci acesta specifica un indicator catre o memorie tampon alocata de apelant in memoria locala a firului de execuie care era utilizata pentru a furniza un mecanism de stocare in cache pentru getcpu(). Utilizarea cache-ului putea accelera apelurile getcpu(), cu preul ca exista o ansa foarte mica ca informaiile returnate sa nu mai fie actualizate. S-a considerat ca mecanismul de stocare in cache ar putea cauza probleme la migrarea firelor de execuie intre CPU-uri, astfel ca argumentul este acum ignorat. NOTE Linux depune toate eforturile pentru a efectua acest apel cat mai repede posibil; (pe unele arhitecturi, acest lucru se face prin intermediul unei implementari in vdso(7)). Intenia lui getcpu() este de a permite programelor sa faca optimizari cu date per-CPU sau pentru optimizarea NUMA. CONSULTAI I mbind(2), sched_setaffinity(2), set_mempolicy(2), sched_getcpu(3), cpuset(7), vdso(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 getcpu(2)