getcpu

GETCPU(2)                  Manuel du programmeur Linux                 GETCPU(2)



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




Linux                              6 mars 2019                         GETCPU(2)