dwww Home | Manual pages | Find package

getcpu(2)                     System Calls Manual                    getcpu(2)

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  les-
       quels 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 mo-
       ment. (Normalement, cela n'arrive pas car l'ordonnanceur essaie de  mi-
       nimiser  les mouvements entre CPU et cache, mais c'est possible.) L'ap-
       pelant doit être prêt à gérer la situation  où  les  informations  ren-
       voyé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 pro-
              cessus 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  ver-
       sions  précédentes de la glibc n'offraient pas d'enveloppe pour cet ap-
       pel 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  pos-
       sible  (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 va-
       lant 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'es-
       pace  local  de stockage du thread utilisé pour fournir un mécanisme de
       cache à getcpu(). L'utilisation de ce cache pouvait accélérer  les  ap-
       pels  à  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), cpu-
       set(7), vdso(7)

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.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⟩.

Pages du manuel de Linux 6.03   4 décembre 2022                      getcpu(2)

Generated by dwww version 1.15 on Sat Jun 29 01:51:02 CEST 2024.