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