Loading

NOM

       get_mempolicy - Lire la politique mémoire NUMA d’un processus

SYNOPSIS

       #include <numaif.h>

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

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

       get_mempolicy()  lit  la  politique NUMA du processus appelant ou d’une
       adresse en mémoire, selon la valeur de flags.

       Une machine NUMA a plusieurs contrôleurs de mémoire, avec des distances
       différentes  aux  divers  processeurs. La politique mémoire définit sur
       quel noeud la mémoire est allouée pour ce processus.

       Si flags est nul, la politique par défaut du processus appelant  (fixée
       par  set_mempolicy(2))  est  renvoyée.  La  politique renvoyée (mode et
       nodemask) peut être utilisée avec set_mempolicy(2)  pour  restaurer  la
       politique   du   processus  dans  son  état  au  moment  de  l’appel  à
       get_mempolicy().

       Si flags indique MPOL_F_MEMS_ALLOWED (disponible depuis  Linux 2.6.24),
       le paramètre mode est ignoré et l’ensemble des noeuds (mémoires) que le
       processus 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  permit  de  combiner  MPOL_F_MEMS_ALLOWED  avec
       MPOL_F_ADDR ou MPOL_F_NODE.

       Si  flags  indique  MPOL_F_ADDR,  l’information  renvoyée  concerne  la
       politique gouvernant la mémoire à l’adresse addr. Cette politique  peut
       être  différente de la politique par défaut du processus si mbind(2) ou
       une des fonctions d’aide décrites dans  numa(3)  a  été  utilisée  pour
       fixer une politique pour la page 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  pointé  par  ce paramètre. Si nodemask n’est pas
       NULL, le masque  de  noeud  associé  à  la  politique  sera  stockée  à
       l’emplacement  pointé  par  cet  argument.  maxnode  spécifie le nombre
       d’identifiants de  noeuds  qui  peuvent  être  stockés  dans  nodemask,
       c’est-à-dire,  la valeur maximale de l’identifiant de noeud plus un. La
       valeur indiquée dans maxnode est toujours arrondie  à  un  multiple  de
       sizeof(unsigned long).

       Si  flags indique à la fois MPOL_F_NODE et MPOL_F_ADDR, get_mempolicy()
       renverra, à l’endroit pointé par mode, l’identifiant de noeud du  noeud
       sur  lequel  l’adresse  addr est allouée. Si aucune page n’a encore été
       allouée pour l’adresse spécifiée,  get_mempolicy()  allouera  une  page
       comme  si le processus avait réalisé un accès en lecture [chargement] à
       cette adresse, et renverra l’identifiant du noeud où cette page  a  été
       allouée.

       Si  flags  indique MPOL_F_NODE mais pas MPOL_F_ADDR et que la politique
       actuelle est  MPOL_INTERLEAVE,  get_mempolicy()  renverra  à  l’endroit
       pointé  par un paramètre mode non nul l’identifiant du prochain noeud à
       utiliser pour l’entrelacement des pages internes du noyau  allouées  au
       nom  du processus. 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 d’attribut sont réservées.

       Pour un survol des politiques possibles, voir 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 (ou toute) la plage mémoire spécifiée par nodemask
              et   maxnode  pointe  en  dehors  de  votre  espace  d’adressage
              accessible.

       EINVAL La  valeur  spécifiée  par  maxnode  est  inférieure  au  nombre
              d’identifiants  de noeud 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  processus  n’est  pas  MPOL_INTERLEAVE.  Ou  flags
              spécifie  MPOL_F_MEMS_ALLOWED  avec  MPOL_F_ADDR ou MPOL_F_NODE.
              (Et il y a 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

       Pour  des  informations  sur  la prise en charge par des bibliothèques,
       consultez numa(7).

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 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  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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