Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

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

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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-IEȘIRE

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

STANDARDE

       Linux.

ISTORIC

       Linux 2.6.19 (x86-64 și i386), glibc 2.29.

   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.

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.

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   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                                          getcpu(2)