Provided by: manpages-fr-dev_4.13-4_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

       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

       Pour des informations sur la prise en charge 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.rst dans l'arborescence des sources du noyau Linux

COLOPHON

       Cette page fait partie de la publication 5.10 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 ⟨⟩.