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.
DESCRIPTION¶
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 différents contrôleurs mémoire à
différentes distances de CPU particulières. La politique de la
mémoire définit à partir de quel nœud la
mémoire pour ce processus sera allouée.
Si
flags est nul, la politique par défaut du processus appelant
(définie 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 nœuds (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 mettre en place 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 nœud
associé à la politique sera stockée à
l'emplacement pointé par 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).
Si
flags indique à la fois
MPOL_F_NODE et
MPOL_F_ADDR,
get_mempolicy() renverra, à l'endroit
pointé par
mode, l'identifiant de nœud du nœud 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 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 est
MPOL_INTERLEAVE,
get_mempolicy() renverra
à l'endroit pointé par un paramètre
mode non nul
l'identifiant du prochain nœud à 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, 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 votre 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 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.
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.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».