get_mempolicy(2) System Calls Manual get_mempolicy(2) NOM get_mempolicy - Recuperer la politique memoire NUMA d'un thread BIBLIOTHEQUE Bibliotheque de regles NUMA (Non-Uniform Memory Access) (libnuma, -lnuma) SYNOPSIS #include 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() recupere la politique NUMA du thread appelant ou d'une adresse en memoire, selon la valeur de flags. Une machine NUMA a differents controleurs memoire a differentes distances des processeurs particuliers. La politique de la memoire definit le noeud a partir duquel la memoire est allouee pour le thread. Si flags vaut 0, les informations sur la politique par defaut du thread appelant (definie par set_mempolicy(2)) est renvoyee dans les tampons vers lesquels pointent mode et nodemask. La valeur renvoyee par ces parametres peut etre utilisee pour restaurer la politique du thread dans son etat au moment de l'appel a get_mempolicy() en utilisant set_mempolicy(2). Quand flags vaut 0, addr doit etre indique comme NULL. Si flags indique MPOL_F_MEMS_ALLOWED (disponible depuis Linux 2.6.24), le parametre mode est ignore et l'ensemble des noeuds (memoires) que le thread est autorise a utiliser dans les appels suivants a mbind(2) ou set_mempolicy(2) (en l'absence de drapeaux de mode) est renvoye 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 renvoyees sur la politique qui preside a l'adresse memoire donnee dans addr. Cette politique peut etre differente de la politique par defaut du thread si mbind(2) ou une des fonctions d'aide decrites dans numa(3) a ete utilisee pour mettre en place une politique pour la plage de memoire contenant l'adresse addr. Si le parametre mode n'est pas NULL, get_mempolicy() stockera le mode de politique et tout drapeau de mode optionnel de la politique NUMA requise a l'endroit vers lequel pointe ce parametre. Si nodemask n'est pas NULL, le masque de noeud associe a la politique sera stocke a l'emplacement vers lequel pointe cet argument. maxnode specifie le nombre d'identifiants de noeuds qui peuvent etre stockes dans nodemask, c'est-a-dire, la valeur maximale de l'identifiant de noeud plus un. La valeur indiquee dans maxnode est toujours arrondie a un multiple de sizeof(unsigned long)*8. Si flags indique a la fois MPOL_F_NODE et MPOL_F_ADDR, get_mempolicy() renverra l'identifiant du noeud sur lequel est allouee l'adresse addr a l'emplacement vers lequel pointe mode. Si aucune page n'a encore ete allouee pour l'adresse specifiee, get_mempolicy() allouera une page comme si le thread avait realise un acces en lecture (chargement) a cette adresse, et renverra l'identifiant du noeud ou cette page a ete allouee. Si flags indique MPOL_F_NODE mais pas MPOL_F_ADDR et que la politique actuelle du thread est MPOL_INTERLEAVE, get_mempolicy() renverra a l'endroit pointe par un parametre mode non NULL l'identifiant du prochain noeud a utiliser pour l'entrelacement des pages internes du noyau allouees au nom du thread. Ces allocations incluent des pages pour les fichiers de memoire projetee dans les plages de memoire projetee du processus en utilisant l'appel mmap(2) avec l'attribut MAP_PRIVATE pour les acces en lecture, et dans les plages de memoire projetee avec l'attribut MAP_SHARED pour tous les autres acces. D'autres valeurs de drapeau sont reservees. Pour un survol des politiques possibles, consultez set_mempolicy(2). VALEUR RENVOYEE get_mempolicy() renvoie 0 s'il reussit, ou -1 s'il echoue, auquel cas errno contient le code d'erreur. ERREURS EFAULT Une partie de la plage memoire specifiee par nodemask et maxnode pointe en dehors de l'espace d'adressage accessible. EINVAL La valeur specifiee par maxnode est inferieure au nombre d'identifiants de noeud pris en charge par le systeme. Ou flags specifie des valeurs autres que MPOL_F_NODE ou MPOL_F_ADDR ; ou flags specifie MPOL_F_ADDR et addr est NULL, ou flags ne specifie pas MPOL_F_ADDR et addr n'est pas NULL. Ou flags specifie MPOL_F_NODE mais pas MPOL_F_ADDR et la politique actuelle du thread n'est pas MPOL_INTERLEAVE. Ou flags specifie 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 bibliotheques, consultez numa(7). VOIR AUSSI getcpu(2), mbind(2), mmap(2), set_mempolicy(2), numa(3), numa(7), numactl(8) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 get_mempolicy(2)