Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       migrate_pages - mută toate paginile dintr-un proces către un alt set de noduri

BIBLIOTECA

       Biblioteca  de  politici  NUMA  („Non-Uniform  Memory Access”: acces neuniform la memorie)
       (libnuma, -lnuma)

REZUMAT

       #include <numaif.h>

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

DESCRIERE

       migrate_pages() încearcă să mute toate paginile procesului pid care se află în nodurile de
       memorie  old_nodes  în  nodurile  de  memorie  din new_nodes.  Paginile care nu se află în
       niciun nod din old_nodes nu vor fi migrate.  Pe cât  posibil,  nucleul  păstrează  relația
       topologică relativă în interiorul old_nodes în timpul migrării către new_nodes.

       Argumentele  old_nodes  și new_nodes sunt indicatori la măști de biți de numere de noduri,
       cu până la maxnode biți în fiecare mască.  Aceste măști sunt păstrate ca matrice de numere
       întregi  fără semn long (în ultimul număr întreg long, biții dincolo de cei specificați de
       maxnode sunt ignorați).  Argumentul maxnode este numărul maxim de noduri din masca de biți
       plus unu (este același ca în mbind(2), dar diferit de select(2)).

       Argumentul  pid  este  ID-ul  procesului ale cărui pagini urmează să fie mutate.  Pentru a
       muta pagini într-un alt proces, apelantul trebuie să fie  privilegiat  (CAP_SYS_NICE)  sau
       ID-ul  real  sau efectiv al utilizatorului procesului apelant trebuie să coincidă cu ID-ul
       real sau cu ID-ul utilizatorului salvat al procesului țintă.   Dacă  pid  este  0,  atunci
       migrate_pages() mută paginile procesului apelant.

       Paginile  partajate  cu  un  alt  proces  vor  fi mutate numai dacă procesul inițiator are
       privilegiul CAP_SYS_NICE.

VALOAREA RETURNATĂ

       În caz de succes, migrate_pages() returnează numărul de pagini care nu au putut fi  mutate
       (de exemplu, un răspuns zero înseamnă că toate paginile au fost mutate cu succes).  În caz
       de eroare, returnează -1 și configurează errno pentru a indica eroarea.

ERORI

       EFAULT O parte sau întregul interval  de  memorie  specificat  de  old_nodes/new_nodes  și
              maxnode se află în afara spațiului de adrese accesibil.

       EINVAL Valoarea  specificată  de  maxnode  depășește  o  limită  impusă  de  nucleu.  Sau,
              old_nodes sau new_nodes specifică unul sau mai multe ID-uri de nod  care  sunt  mai
              mari  decât  ID-ul  de nod maxim acceptat.  Sau, niciunul dintre ID-urile de noduri
              specificate de new_nodes nu este în linie și nu este  permis  de  contextul  cpuset
              curent al procesului sau niciunul dintre nodurile specificate nu conține memorie.

       EPERM  Privilegiu   insuficient   (CAP_SYS_NICE)  pentru  a  muta  pagini  ale  procesului
              specificat de  pid  sau  privilegiu  insuficient  (CAP_SYS_NICE)  pentru  a  accesa
              nodurile țintă specificate.

       ESRCH  Nu a putut fi găsit niciun proces care să corespundă cu pid.

VERSIUNI

       Apelul de sistem migrate_pages() a apărut pentru prima dată în Linux 2.6.16.

STANDARDE

       Acest apel de sistem este specific pentru Linux.

NOTE

       Pentru informații privind suportul de bibliotecă, consultați numa(7).

       Utilizați  get_mempolicy(2)  cu  indicatorul  MPOL_F_MEMS_ALLOWED pentru a obține setul de
       noduri care sunt permise de cpuset-ul procesului apelant.  Rețineți că  aceste  informații
       pot fi modificate în orice moment prin reconfigurarea manuală sau automată a cpuset-ului.

       Utilizarea  migrate_pages()  poate  avea  ca rezultat pagini a căror locație (nod) încalcă
       politica de memorie stabilită pentru adresele specificate (a  se  vedea  mbind(2))  și/sau
       procesul  specificat  (a  se  vedea  set_mempolicy(2)).   Adică,  politica  de  memorie nu
       constrânge nodurile de destinație utilizate de migrate_pages().

       Antetul <numaif.h> nu este inclus în glibc, ci necesită  instalarea  libnuma-devel  sau  a
       unui pachet similar.

CONSULTAȚI ȘI

       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 în arborele sursă al nucleului Linux

TRADUCERE

       Traducerea în limba  română  a  acestui  manual  a  fost  creată  de  Remus-Gabriel  Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară  cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui  manual,  vă  rugăm să trimiteți un e-mail la
       ⟨translation-team-ro@lists.sourceforge.net⟩.