Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       migrate_pages - Déplacer toutes les pages d'un processus sur un autre ensemble de nœuds

SYNOPSIS

       #include <numaif.h>

       long migrate_pages(int pid, unsigned long maxnode,
                          const unsigned long *old_nodes,
                          const unsigned long *new_nodes);

       Effectuez l'édition des liens avec l'option -lnuma.

DESCRIPTION

       migrate_pages()  essaye  de  déplacer  toutes  les pages du processus pid qui sont sur les
       nœuds de mémoire old_nodes vers les nœuds de mémoire new_nodes. Les pages qui ne sont dans
       aucun  nœud  de  old_nodes ne seront pas déplacées. Le noyau maintient autant que possible
       les relations topologiques relatives à l'intérieur de old_nodes durant le déplacement vers
       new_nodes.

       Les  arguments  old_nodes  et  new_nodes  sont  des  pointeurs vers des masques de bits de
       numéros de nœuds, avec jusqu'à maxnode bits dans chaque masque. Ces masques sont maintenus
       comme  des  tableaux  d'entiers  longs non signés (unsigned long) ; dans le dernier entier
       long, les bits après ceux spécifiés par maxnode sont ignorés. L'argument maxnode  vaut  un
       plus le numéro maximal de nœud dans le masque de bit (qui a donc la même signification que
       dans mbind(2), mais est différent de select(2)).

       L'argument pid est l'identifiant du processus dont les pages doivent être déplacées.  Pour
       déplacer   les   pages   dans   un  autres  processus,  l'appelant  doit  être  privilégié
       (CAP_SYS_NICE) ou l'identifiant utilisateur réel ou effectif du  processus  appelant  doit
       correspondre  à l'identifiant utilisateur réel ou sauvé du processus cible. Si pid vaut 0,
       alors migrate_pages() déplace les pages du processus appelant.

       Les pages partagées avec un autre processus  ne  seront  déplacées  que  si  le  processus
       appelant possède le privilège CAP_SYS_NICE.

VALEUR RENVOYÉE

       S'il  réussit,  migrate_pages() renvoie le nombre de pages qui n'ont pas pu être déplacées
       (c'est-à-dire qu'un code de retour de zéro signifie que toutes les pages ont été  déplacés
       correctement). En cas d'erreur, il renvoie -1 et remplit errno avec la valeur d'erreur.

ERREURS

       EPERM  Un  privilège  insuffisant  (CAP_SYS_NICE)   pour  déplacer  les pages du processus
              spécifié par pid ou pour accéder aux nœuds de destination.

       ESRCH  Il n'y a pas de processus correspondant à pid.

VERSIONS

       L'appel système migrate_pages() est apparu pour la première fois sous Linux avec le  noyau
       2.6.16.

CONFORMITÉ

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

NOTES

       Pour des informations sur la prise en charge par des bibliothèques, consultez numa(7).

       Utilisez  get_mempolicy(2) avec le drapeau MPOL_F_MEMS_ALLOWED pour obtenir l'ensemble des
       nœuds autorisés par l'ensemble de processeurs  du  processus  appelant.  Notez  que  cette
       information  peut  changer  à  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 nœud)  viole
       la  politique  mémoire établie pour les adresses indiquées (consultez mbind(2)) ou pour le
       processus indiqué (consultez set_mempolicy(2)). En d'autres termes, la  politique  mémoire
       ne restreint pas les nœuds de destination utilisés par migrate_pages().

       L'en-tête  <numaif.h>  n'est  pas  inclus  dans la glibc, mais nécessite 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 dans les sources du noyau Linux

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/>.

       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> ».