Provided by: manpages-fr-dev_4.13-4_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);

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 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)).

CONFORMITÉ

       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.

       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), vdso(7)

COLOPHON

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

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 ⟨⟩.