migrate_pages(2) System Calls Manual migrate_pages(2) NOM migrate_pages - Deplacer toutes les pages d'un processus sur un autre ensemble de noeuds BIBLIOTHEQUE Bibliotheque de regles NUMA (Non-Uniform Memory Access) (libnuma, -lnuma) SYNOPSIS #include long migrate_pages(int pid, unsigned long maxnode, const unsigned long *old_nodes, const unsigned long *new_nodes); DESCRIPTION migrate_pages() essaye de deplacer toutes les pages du processus pid qui sont sur les noeuds de memoire old_nodes vers les noeuds de memoire new_nodes. Les pages qui ne sont dans aucun noeud de old_nodes ne seront pas deplacees. Le noyau maintient autant que possible les relations topologiques relatives a l'interieur de old_nodes durant le deplacement vers new_nodes. Les arguments old_nodes et new_nodes sont des pointeurs vers des masques de bits de numeros de noeuds, avec jusqu'a maxnode bits dans chaque masque. Ces masques sont maintenus comme des tableaux d'entiers longs non signes (unsigned long) ; dans le dernier entier long, les bits apres ceux specifies par maxnode sont ignores. L'argument maxnode vaut un plus le numero maximal de noeud dans le masque de bit (qui a donc la meme signification que dans mbind(2), mais est different de select(2)). L'argument pid est l'identifiant du processus dont les pages doivent etre deplacees. Pour deplacer les pages dans un autres processus, l'appelant doit etre privilegie (CAP_SYS_NICE) ou l'identifiant utilisateur reel ou effectif du processus appelant doit correspondre a l'identifiant utilisateur reel ou sauve du processus cible. Si pid vaut 0, alors migrate_pages() deplace les pages du processus appelant. Les pages partagees avec un autre processus ne seront deplacees que si le processus appelant possede le privilege CAP_SYS_NICE. VALEUR RENVOYEE S'il reussit, migrate_pages() renvoie le nombre de pages qui n'ont pas pu etre deplacees (c'est-a-dire qu'un code de retour de zero signifie que toutes les pages ont ete deplaces correctement). En cas d'erreur, il renvoie -1 et remplit errno avec la valeur d'erreur. ERREURS EFAULT Une partie de la plage memoire specifiee par old_nodes/new_nodes et maxnode pointe en dehors de votre espace d'adressage accessible. EINVAL La valeur indiquee par maxnode depasse une limite imposee par le noyau. Ou bien, old_nodes ou new_nodes specifie un ou plusieurs identifiants de noeud qui sont plus grands que l'identifiant maximum de noeud pris en charge. Ou aucun des identifiants de noeuds specifies par new_nodes ne sont connectes et autorises par le contexte de cpuset actuel du processus, ou aucun des noeuds specifies ne contient de memoire. EPERM Un privilege insuffisant (CAP_SYS_NICE) pour deplacer les pages du processus specifie par pid ou pour acceder aux noeuds de destination. ESRCH Il n'y a pas de processus correspondant a pid. STANDARDS Linux. HISTORIQUE Linux 2.6.16. NOTES Pour des informations sur la prise en charge des bibliotheques, consultez numa(7). Utilisez get_mempolicy(2) avec le drapeau MPOL_F_MEMS_ALLOWED pour obtenir l'ensemble des noeuds autorises par l'ensemble de processeurs du processus appelant. Notez que cette information peut changer a tout instant d'une fait d'une reconfiguration manuelle ou automatique de l'ensemble de processeurs. L'utilisation de migrate_pages() peut causer des pages dont l'emplacement (le noeud) viole la politique memoire etablie pour les adresses indiquees (consultez mbind(2)) ou pour le processus indique (consultez set_mempolicy(2)). En d'autres termes, la politique memoire ne restreint pas les noeuds de destination utilises par migrate_pages(). L'en-tete n'est pas inclus dans la glibc, mais necessite l'installation de libnuma-devel (ce nom peut varier suivant les distributions). VOIR AUSSI get_mempolicy(2), mbind(2), set_mempolicy(2), numa(3), numa_maps(5), cpuset(7), numa(7), migratepages(8), numastat(8) Documentation/vm/page_migration.rst dans l'arborescence des sources du noyau Linux 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 migrate_pages(2)