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.