.\" Copyright 2009 Intel Corporation .\" Author: Andi Kleen .\" Based on the move_pages manpage which was .\" This manpage is Copyright (C) 2006 Silicon Graphics, Inc. .\" Christoph Lameter .\" .\" %%%LICENSE_START(VERBATIM_TWO_PARA) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2012 Akihiro MOTOKI .\" all rights reserved. .\" Translated 2012-05-10, Akihiro MOTOKI .\" Updated 2013-03-26, Akihiro MOTOKI .\" .TH MIGRATE_PAGES 2 2012\-08\-01 Linux "Linux Programmer's Manual" .SH 名前 migrate_pages \- プロセスの全ページを別のノード集合に移動する .SH 書式 .nf \fB#include \fP .sp \fBlong migrate_pages(int \fP\fIpid\fP\fB, unsigned long \fP\fImaxnode,\fP \fB const unsigned long *\fP\fIold_nodes,\fP \fB const unsigned long *\fP\fInew_nodes\fP\fB);\fP .fi .sp \fI\-lnuma\fP とリンクする。 .SH 説明 \fBMIGRATE_PAGES\fP() は、メモリーノード \fIold_nodes\fP にあるプロセス \fIpid\fP の全ページを、メモリーノード \fInew_nodes\fP に移動しようとする。\fIold_nodes\fP で 指定されたメモリーノードに置かれていないページは移動されない。 カーネルは、 \fInew_nodes\fP への移動の際に、 \fIold_nodes\fP 内の相対的な トポロジー関係を可能な限り維持しようとする。 引き数 \fIold_nodes\fP と \fInew_nodes\fP は、最大で \fImaxnode\fP ビットから 構成されるノード番号のビットマスクへのポインターである。 各ビットマスクは符号なし \fIlong\fP 整数の配列として管理される (\fImaxnode\fP で指定された長さを越えた部分のビットは無視される)。 引き数 \fImaxnode\fP は最大ノード番号であり、ビットマスクの長さに 1 を 加えた値となる (これは \fBmbind\fP(2) と同じだが、 \fBselect\fP(2) とは違う)。 引き数 \fIpid\fP は、移動を行うページの所有者のプロセス ID である。 別のプロセスのページを移動するには、呼び出したプロセスが特権 (\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザー ID か 実効ユーザー ID がページ移動の対象プロセスの実ユーザー ID か saved\-set ユーザー ID と一致していなければならない。\fIpid\fP が 0 の場合、 \fBmigrate_pages\fP() は呼び出したプロセスのページを移動する。 別のプロセスと共有しているページは、呼び出したプロセスが \fBCAP_SYS_NICE\fP 特権を持っている場合にのみ移動される。 .SH 返り値 \fBmigrate_pages\fP() は、移動できなかったページ数を返す (つまり、移動に成功した場合は返り値は 0 となる)。 エラーの場合、 \-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。 .SH エラー .TP \fBEPERM\fP \fIpid\fP で指定されたプロセスのページを移動するのに必要な特権 (\fBCAP_SYS_NICE\fP) がなかった。または、指定された対象ノードにアクセス するのに必要な権限 (\fBCAP_SYS_NICE\fP) がなかった。 .TP \fBESRCH\fP .\" FIXME Document the other errors that can occur for migrate_pages() プロセス ID が \fIpid\fP のプロセスが見つからなかった。 .SH バージョン \fBmigrate_pages\fP() システムコールは Linux 2.6.16 で初めて登場した。 .SH 準拠 このシステムコールは Linux 固有である。 .SH 注意 ライブラリによるサポートについては \fBnuma\fP(7) を参照。 呼び出し元プロセスの CPU 集合で許可されているノード集合を取得するには、 \fBMPOL_F_MEMS_ALLOWED\fP フラグを付けて \fBget_mempolicy\fP(2) を使うこと。 この情報は、手動/自動に限らず CPU 集合の再構成によりいつでも 変更されることがある点に注意してほしい。 \fBmigrate_pages\fP を使用すると、ページが置かれる場所 (ノード) が、指定 されたアドレスに対して設定されたメモリーポリシー (\fBmbind\fP(2) 参照) や 指定されたプロセスに対して設定されたメモリーポリシー (\fBset_mempolicy\fP(2) 参照) に違反する状況になる可能性がある。 すなわち、メモリーポリシーによる制約は \fBmigrate_pages\fP() による移動先 ノードの選択には適用されないということである。 ヘッダーファイル \fI\fP は glibc には含まれておらず、 \fIlibnuma\-devel\fP か同様のパッケージをインストールする必要がある。 .SH 関連項目 \fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBset_mempolicy\fP(2), \fBnuma\fP(3), \fBnuma_maps\fP(5), \fBcpuset\fP(7), \fBnuma\fP(7), \fBmigratepages\fP(8), \fBnumastat\fP(8) Linux カーネルソースの \fIDocumentation/vm/page_migration\fP .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。