Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


migrate_pages(2) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |STANDARDS |HISTORY |NOTES |SEE ALSO |COLOPHON

migrate_pages(2)           System Calls Manualmigrate_pages(2)

NAME        top

       migrate_pages - move all pages in a process to another set of       nodes

LIBRARY        top

       NUMA (Non-Uniform Memory Access) policy library (libnuma,-lnuma)

SYNOPSIS        top

#include <numaif.h>long migrate_pages(intpid, unsigned longmaxnode,const unsigned long *old_nodes,const unsigned long *new_nodes);

DESCRIPTION        top

migrate_pages() attempts to move all pages of the processpid that       are in memory nodesold_nodes to the memory nodes innew_nodes.       Pages not located in any node inold_nodes will not be migrated.       As far as possible, the kernel maintains the relative topology       relationship insideold_nodes during the migration tonew_nodes.       Theold_nodes andnew_nodes arguments are pointers to bit masks of       node numbers, with up tomaxnode bits in each mask.  These masks       are maintained as arrays of unsignedlong integers (in the lastlong integer, the bits beyond those specified bymaxnode are       ignored).  Themaxnode argument is the maximum node number in the       bit mask plus one (this is the same as inmbind(2), but different       fromselect(2)).       Thepid argument is the ID of the process whose pages are to be       moved.  To move pages in another process, the caller must be       privileged (CAP_SYS_NICE) or the real or effective user ID of the       calling process must match the real or saved-set user ID of the       target process.  Ifpid is 0, thenmigrate_pages() moves pages of       the calling process.       Pages shared with another process will be moved only if the       initiating process has theCAP_SYS_NICEprivilege.

RETURN VALUE        top

       On successmigrate_pages() returns the number of pages that could       not be moved (i.e., a return of zero means that all pages were       successfully moved).  On error, it returns -1, and setserrno to       indicate the error.

ERRORS        top

EFAULTPart or all of the memory range specified byold_nodes/new_nodes andmaxnode points outside your              accessible address space.EINVALThe value specified bymaxnode exceeds a kernel-imposed              limit.  Or,old_nodes ornew_nodes specifies one or more              node IDs that are greater than the maximum supported node              ID.  Or, none of the node IDs specified bynew_nodes are              on-line and allowed by the process's current cpuset              context, or none of the specified nodes contain memory.EPERMInsufficient privilege (CAP_SYS_NICE) to move pages of the              process specified bypid, or insufficient privilege              (CAP_SYS_NICE) to access the specified target nodes.ESRCHNo process matchingpid could be found.

STANDARDS        top

       Linux.

HISTORY        top

       Linux 2.6.16.

NOTES        top

       For information on library support, seenuma(7).       Useget_mempolicy(2) with theMPOL_F_MEMS_ALLOWEDflag to obtain       the set of nodes that are allowed by the calling process's cpuset.       Note that this information is subject to change at any time by       manual or automatic reconfiguration of the cpuset.       Use ofmigrate_pages() may result in pages whose location (node)       violates the memory policy established for the specified addresses       (seembind(2)) and/or the specified process (seeset_mempolicy(2)).  That is, memory policy does not constrain the       destination nodes used bymigrate_pages().       The<numaif.h> header is not included with glibc, but requires       installinglibnuma-devel or a similar package.

SEE ALSO        top

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 in the Linux kernel source       tree

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17migrate_pages(2)

Pages that refer to this page:swapon(2)syscalls(2)numa(3)capabilities(7)numa(7)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp