Provided by: manpages-fr-dev_4.18.1-1_all bug

NOM

       getcpu  -  Déterminer le processeur et le nœud NUMA sur lesquels le thread appelant est en
       cours d'exécution

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
       #include <sched.h>

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

DESCRIPTION

       L'appel système getcpu() identifie le processeur et le nœud  sur  lesquels  le  thread  ou
       processus  appelant est en cours d'exécution et écrit le résultat dans les entiers pointés
       par les arguments cpu et node. Le processeur est un petit entier  unique  identifiant  une
       CPU. Le nœud est un petit entier unique identifiant un nœud NUMA. Si cpu ou node est NULL,
       rien n'est écrit dans leur pointeur respectif.

       L'information placée dans cpu n'est garantie d'être exacte qu'au  moment  de  l'appel :  à
       moins  que  l'affinité  CPU  n'ait  été  définie  avec sched_setaffinity(2), le noyau peut
       changer de processeur à tout moment. (Normalement, cela n'arrive  pas  car  l'ordonnanceur
       essaie  de  minimiser  les mouvements entre CPU et cache, mais c'est possible.) L'appelant
       doit être prêt à gérer la situation où les informations renvoyées dans cpu et node ne sont
       plus valables au retour de l'appel.

VALEUR RENVOYÉE

       S'il  réussit,  la  valeur  zéro est renvoyée. En cas d'erreur, il renvoie -1 et errno est
       positionné pour indiquer l'erreur.

ERREURS

       EFAULT Les arguments pointent en dehors de l'espace d'adressage du processus appelant.

VERSIONS

       getcpu() a été ajouté dans Linux 2.6.19 pour x86-64 et i386. La  prise  en  charge  de  la
       bibliothèque  a  été  ajoutée  à  la  glibc  2.29  (les  versions  précédentes de la glibc
       n'offraient pas d'enveloppe pour cet appel système, nécessitant d'utiliser syscall(2)).

STANDARDS

       getcpu() est spécifique à Linux.

NOTES

       Linux fait de gros efforts pour rendre cet appel aussi rapide que possible (sur  certaines
       architectures, il passe par une implémentation dans la vdso(7)). Le but de getcpu() est de
       permettre aux programmes de  réaliser  des  optimisations  de  données  propres  à  chaque
       processeur et pour l'optimisation NUMA.

   différences entre bibliothèque C et noyau
       L'appel système du noyau a un troisième argument :

           int getcpu(unsigned int *cpu, unsigned int *node,0
                      struct getcpu_cache *tcache);

       L'argument  tcache  est inutilisé depuis Linux 2.6.24 et (lorsqu'il est appelé directement
       avec l'appel système) devrait être indiqué comme valant NULL sauf si la  portabilité  vers
       Linux 2.6.23 ou antérieur est nécessaire.

       Dans  Linux 2.6.23 et antérieur, si le paramètre tcache n'était pas NULL, il spécifiait un
       pointeur vers un tampon de l'appelant dans l'espace local de stockage  du  thread  utilisé
       pour fournir un mécanisme de cache à getcpu(). L'utilisation de ce cache pouvait accélérer
       les appels à getcpu(), avec le faible risque que l'information renvoyée  ne  soit  plus  à
       jour.  On  a  considéré  que  le  mécanisme  de  cache entraînait des problèmes lors de la
       migration de threads entre processeurs, aussi, cet argument est aujourd'hui ignoré.

VOIR AUSSI

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

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier  <barbier@debian.org>,  David  Prévot <david@tilapin.org> et Jean-Philippe MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.