Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       get_mempolicy - Récupérer la politique mémoire NUMA d'un thread

SYNOPSIS

       #include <numaif.h>

       long get_mempolicy(int *mode, unsigned long *nodemask,
                          unsigned long maxnode, void *addr,
                          unsigned long flags);

       Effectuez l'édition des liens avec l'option -lnuma.

       Note : il n'existe pas d'enveloppe pour cet appel système dans la glibc ; voir NOTES.

DESCRIPTION

       get_mempolicy() récupère la politique NUMA du thread appelant ou d'une adresse en mémoire,
       selon la valeur de flags.

       Une machine NUMA a différents contrôleurs mémoire à différentes distances des  processeurs
       particuliers.  La  politique  de la mémoire définit le nœud à partir duquel la mémoire est
       allouée pour le thread.

       Si flags vaut 0, les informations sur la politique par défaut du thread appelant  (définie
       par  set_mempolicy(2))  est  renvoyée  dans  les  tampons  vers  lesquels pointent mode et
       nodemask. La valeur renvoyée par ces paramètres  peut  être  utilisée  pour  restaurer  la
       politique  du  thread  dans  son  état au moment de l'appel à get_mempolicy() en utilisant
       set_mempolicy(2). Quand flags vaut 0, addr doit être indiqué comme NULL.

       Si flags indique MPOL_F_MEMS_ALLOWED (disponible depuis Linux 2.6.24), le  paramètre  mode
       est  ignoré  et l'ensemble des nœuds (mémoires) que le thread est autorisé à utiliser dans
       les appels suivants à mbind(2) ou set_mempolicy(2) (en l'absence de drapeaux de mode)  est
       renvoyé   dans  nodemask.  Il  n'est  pas  permis  de  combiner  MPOL_F_MEMS_ALLOWED  avec
       MPOL_F_ADDR ou MPOL_F_NODE.

       Si flags indique MPOL_F_ADDR, des informations sont renvoyées sur la politique qui préside
       à l'adresse mémoire donnée dans addr. Cette politique peut être différente de la politique
       par défaut du thread si mbind(2) ou une des fonctions d'aide décrites dans numa(3)  a  été
       utilisée  pour  mettre en place une politique pour la plage de mémoire contenant l'adresse
       addr.

       Si le paramètre mode n'est pas NULL, get_mempolicy() stockera le mode de politique et tout
       drapeau  de  mode optionnel de la politique NUMA requise à l'endroit vers lequel pointe ce
       paramètre. Si nodemask n'est pas NULL, le masque de  nœud  associé  à  la  politique  sera
       stocké  à  l'emplacement  vers  lequel  pointe  cet  argument.  maxnode spécifie le nombre
       d'identifiants de nœuds qui peuvent être stockés dans nodemask,  c'est-à-dire,  la  valeur
       maximale  de  l'identifiant  de nœud plus un. La valeur indiquée dans maxnode est toujours
       arrondie à un multiple de sizeof(unsigned long)*8.

       Si  flags  indique  à  la  fois  MPOL_F_NODE  et  MPOL_F_ADDR,  get_mempolicy()   renverra
       l'identifiant  du  nœud  sur lequel est allouée l'adresse addr à l'emplacement vers lequel
       pointe  mode.  Si  aucune  page  n'a  encore  été  allouée   pour   l'adresse   spécifiée,
       get_mempolicy()  allouera  une  page  comme si le thread avait réalisé un accès en lecture
       (chargement) à cette adresse, et renverra l'identifiant  du  nœud  où  cette  page  a  été
       allouée.

       Si  flags  indique MPOL_F_NODE mais pas MPOL_F_ADDR et que la politique actuelle du thread
       est MPOL_INTERLEAVE, get_mempolicy() renverra à l'endroit pointé par un paramètre mode non
       NULL  l'identifiant du prochain nœud à utiliser pour l'entrelacement des pages internes du
       noyau allouées au nom du thread. Ces allocations incluent des pages pour les  fichiers  de
       mémoire  projetée  dans  les  plages de mémoire projetée du processus en utilisant l'appel
       mmap(2) avec l'attribut MAP_PRIVATE pour les accès en  lecture,  et  dans  les  plages  de
       mémoire projetée avec l'attribut MAP_SHARED pour tous les autres accès.

       D'autres valeurs de drapeau sont réservées.

       Pour un survol des politiques possibles, consultez set_mempolicy(2).

VALEUR RENVOYÉE

       get_mempolicy()  renvoie  0  s'il réussit, ou -1 s'il échoue, auquel cas errno contient le
       code d'erreur.

ERREURS

       EFAULT Une partie de la plage mémoire spécifiée par nodemask et maxnode pointe  en  dehors
              de l’espace d'adressage accessible.

       EINVAL La  valeur  spécifiée  par  maxnode est inférieure au nombre d'identifiants de nœud
              pris en charge par le système. Ou flags spécifie des valeurs autres que MPOL_F_NODE
              ou  MPOL_F_ADDR ;  ou  flags  spécifie  MPOL_F_ADDR  et  addr est NULL, ou flags ne
              spécifie pas MPOL_F_ADDR et addr n'est pas NULL. Ou flags spécifie MPOL_F_NODE mais
              pas  MPOL_F_ADDR  et  la politique actuelle du thread n'est pas MPOL_INTERLEAVE. Ou
              flags spécifie MPOL_F_MEMS_ALLOWED avec MPOL_F_ADDR ou  MPOL_F_NODE.  (Il  n’existe
              pas d'autres cas pour EINVAL.)

VERSIONS

       L'appel système get_mempolicy() a été ajouté au noyau Linux dans la version 2.6.7.

CONFORMITÉ

       Cet appel système est spécifique à Linux.

NOTES

       La  glibc  ne  fournit pas de fonction autour de cet appel système. Consultez numa(7) pour
       des informations sur la prise en charge par des bibliothèques.

VOIR AUSSI

       getcpu(2), mbind(2), mmap(2), set_mempolicy(2), numa(3), numa(7), numactl(8)

COLOPHON

       Cette page fait partie de la publication 5.13 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⟩.