Provided by: manpages-fr-dev_4.15.0-9_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);

       Note : il n'existe pas d'enveloppe pour cet appel système dans la glibc ; voir NOTES.

       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

       EFAULT Une  partie de la plage mémoire spécifiée par old_nodes/new_nodes et maxnode pointe
              en dehors de votre espace d'adressage accessible.

       EINVAL La valeur indiquée par maxnode dépasse une limite imposée par le  noyau.  Ou  bien,
              old_nodes  ou new_nodes spécifie un ou plusieurs identifiants de nœud qui sont plus
              grands que l'identifiant maximum de nœud pris en charge. Ou aucun des  identifiants
              de  nœuds spécifiés par new_nodes ne sont connectés et autorisés par le contexte de
              cpuset actuel du processus, ou aucun des nœuds spécifiés ne contient de mémoire.

       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

       La glibc ne fournit pas de fonction autour de cet appel système.  Consultez  numa(7)  pour
       des informations sur la prise en charge par des bibliothèques.

       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.rst dans l'arborescence des sources du noyau Linux

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.