Provided by: manpages-fr-dev_4.26.0-1_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque de règles NUMA (Non-Uniform Memory Access) (libnuma, -lnuma)

SYNOPSIS

       #include <numaif.h>

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

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.

STANDARDS

       Linux.

HISTORIQUE

       Linux 2.6.16.

NOTES

       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

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

Pages du manuel de Linux 6.9.1                     2 mai 2024                                   migrate_pages(2)