Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       getcpu - determină CPU-ul și nodul NUMA pe care rulează firul apelant

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #define _GNU_SOURCE             /* Consultați feature_test_macros(7) */
       #include <sched.h>

       int getcpu(unsigned int *_Nullable cpu, unsigned int *_Nullable node);

DESCRIERE

       Apelul de sistem getcpu() identifică procesorul și nodul pe care se execută în prezent firul sau procesul
       apelant  și  le  scrie  în numerele întregi indicate de argumentele cpu și nod.  Procesorul este un număr
       întreg mic și unic care identifică un procesor.  Nodul este un identificator mic unic care identifică  un
       nod NUMA.  Atunci când cpu sau nod este NULL, nu se scrie nimic în indicatorul respectiv.

       Informațiile  plasate  în  cpu  sunt  garantate  a  fi actuale doar în momentul apelului: dacă afinitatea
       procesorului nu a fost fixată folosind sched_setaffinity(2), nucleul poate schimba  procesorul  în  orice
       moment;  (în  mod  normal,  acest  lucru  nu  se întâmplă, deoarece planificatorul încearcă să minimizeze
       mișcările între CPU-uri pentru a menține memoria cache în funcțiune, dar este posibil). Apelantul trebuie
       să ia în considerare posibilitatea ca informațiile returnate în cpu și node să  nu  mai  fie  actuale  în
       momentul în care apelul returnează.

VALOAREA RETURNATĂ

       În  caz de succes, se returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru
       a indica eroarea.

ERORI

       EFAULT Argumentele indică în afara spațiului de adrese al procesului apelant.

VERSIUNI

       getcpu() a fost adăugat în Linux 2.6.19 pentru x86-64 și i386.  Suportul pentru bibliotecă a fost adăugat
       în glibc 2.29 (versiunile anterioare ale glibc nu ofereau o funcție învăluitoare  pentru  acest  apel  de
       sistem, fiind necesară utilizarea syscall(2)).

STANDARDE

       getcpu() este specific Linux.

NOTE

       Linux  depune toate eforturile pentru a efectua acest apel cât mai repede posibil; (pe unele arhitecturi,
       acest lucru se face prin intermediul unei implementări în vdso(7)).  Intenția  lui  getcpu()  este  de  a
       permite programelor să facă optimizări cu date per-CPU sau pentru optimizarea NUMA.

   Diferențe între 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  începând  cu Linux 2.6.24 și (atunci când se invocă direct apelul de
       sistem) ar trebui să fie specificat ca NULL, cu excepția cazului în care este necesară portabilitatea  la
       Linux 2.6.23 sau la o versiune anterioară.

       În  Linux 2.6.23 și versiunile anterioare, dacă argumentul tcache nu era NULL, atunci acesta specifica un
       indicator către o memorie tampon alocată de apelant în memoria locală a  firului  de  execuție  care  era
       utilizată  pentru  a furniza un mecanism de stocare în cache pentru getcpu(). Utilizarea cache-ului putea
       accelera apelurile getcpu(), cu prețul că exista o șansă foarte mică ca informațiile returnate să nu  mai
       fie  actualizate.  S-a  considerat  că mecanismul de stocare în cache ar putea cauza probleme la migrarea
       firelor de execuție între CPU-uri, astfel că argumentul este acum ignorat.

CONSULTAȚI ȘI

       mbind(2), sched_setaffinity(2), set_mempolicy(2), sched_getcpu(3), cpuset(7), vdso(7)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   creată   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.03                  4 decembrie 2022                                       getcpu(2)