int get_mempolicy(int *mode, unsigned long *nodemask, unsigned long maxnode, unsigned long addr, unsigned long flags); Utilisez -lnuma à l'édition de liens
Une machine NUMA a plusieurs contrôleurs mémoire à différentes distances de CPU particulières. La politique mémoire définit dans quel nœud la mémoire sera allouée pour ce processus.
Si flags vaut 0, l'information sur la politique par défaut du processus appelant (comme celle configurée avec set_mempolicy(2)) est renvoyée.
Si flags vaut MPOL_F_ADDR, l'information renvoyée est celle qui gouverne l'adresse mémoire donnée dans addr. Cette politique peut être différente de la politique par défaut du processus si on a utilisé mbind(2) ou l'une des fonctions d'aide décrites dans numa(3) pour définir une politique pour la plage mémoire contenant l'adresse addr.
Si l'argument mode n'est pas NULL, get_mempolicy() stockera le mode de politique de la politique NUMA requise à l'endroit pointé par cet argument. 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 maximum 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 argument 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 une vue d'ensemble des politiques possibles, voir set_mempolicy(2).
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 21 juillet 2006 et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 get_mempolicy ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 17 juillet 2008