dwww Home | Manual pages | Find package

get_mempolicy(2)              System Calls Manual             get_mempolicy(2)

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 dis-
       tances 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 pa-
       ramètres peut être utilisée pour restaurer la politique du thread  dans
       son état au moment de l'appel à get_mempolicy() en utilisant set_mempo-
       licy(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 poli-
       tique  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é utili-
       sée  pour mettre en place une politique pour la plage de mémoire conte-
       nant 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 re-
       quise à 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'em-
       placement 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 si-
       zeof(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  pro-
       chain  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'at-
       tribut 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'iden-
              tifiants  de nœud pris en charge par le système. Ou flags spéci-
              fie 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é dans Linux 2.6.7.

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

NOTES
       Pour des informations sur la prise en charge des bibliothèques, consul-
       tez numa(7).

VOIR AUSSI
       getcpu(2),  mbind(2),  mmap(2), set_mempolicy(2), numa(3), numa(7), nu-
       mactl(8)

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   5 février 2023                get_mempolicy(2)

Generated by dwww version 1.15 on Sat Jun 29 01:40:39 CEST 2024.