Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque de règles NUMA (Non-Uniform Memory Access) (libnuma, -lnuma)

SYNOPSIS

       #include <numaif.h>

       long get_mempolicy(int *mode,
                          unsigned long nodemask[(.maxnode + ULONG_WIDTH - 1)
       / ULONG_WIDTH],
                          unsigned long maxnode, void *addr,
                          unsigned long flags);

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 ou  MPOL_WEIGHTED_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  ni  MPOL_INTERLEAVE,  ni
              MPOL_WEIGHTED_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.)

STANDARDS

       Linux.

HISTORIQUE

       Linux 2.6.7.

NOTES

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

VOIR AUSSI

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

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