Man page - getcpu(2)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

getcpu

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
Différences entre bibliothÚque C et noyau
NOTES
VOIR AUSSI
TRADUCTION

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

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

En cas de succĂšs, 0 est renvoyĂ©. En cas d’erreur, -1 est renvoyĂ© et errno est positionnĂ©e pour indiquer l’erreur.

ERREURS

EFAULT

Les arguments pointent en dehors de l’espace d’adressage du processus appelant.

STANDARDS

Linux.

HISTORIQUE

Linux 2.6.19 (x86-64 et i386), glibc 2.29.

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 valant 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’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Ă©.

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.

VOIR AUSSI

mbind (2), sched_setaffinity (2), set_mempolicy (2), sched_getcpu (3), cpuset (7), vdso (7)

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