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);
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é.
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’ordonnaceur essaie de
minimiser les mouvements entre CPU et cache, mais c’est possible.)
L’appelant doit être prêt à gérer la situation où cpu et node ne sont
plus les CPU et nœud actuels.
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.23 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
Cette page de manuel a été traduite par Alain Portal <aportal AT
univ-montp2 DOT fr> en 2008, et mise à disposition sur
http://manpagesfr.free.fr/.
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> ».