Provided by: manpages-fr-dev_3.65d1p1-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

SYNOPSIS

       #include <linux/getcpu.h>

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

       Remarque : il n'existe pas de fonction glibc  autour  de  cet  appel  système ;  consultez
       NOTES.

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.

       Le  troisième  argument  de  cet  appel système est aujourd'hui inutilisé, et devrait être
       indiqué comme valant NULL sauf si la  portabilité  vers  Linux  2.6.23  ou  antérieur  est
       nécessaire (consultez les NOTES).

       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 remplit errno
       avec la valeur d'erreur.

ERREURS

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

VERSIONS

       getcpu()  a  été  ajouté  au noyau dans sa version 2.6.19 pour les architectures x86_64 et
       i386.

CONFORMITÉ

       getcpu() est spécifique à Linux.

NOTES

       Linux fait de gros efforts pour rendre cet appel aussi rapide  que  possible.  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.

       La glibc ne fournit pas de fonction autour de cet appel système ; utilisez syscall(2) pour
       l'appeler ; ou utilisez sched_getcpu(3) à la place.

       Le  paramètre  tcache n'est pas utilisé depuis la version 2.6.24 de Linux. Dans les noyaux
       antérieurs, si cet argument 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)

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Alain Portal <http://manpagesfr.free.fr/> (2008).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».