.\" FIXME Should programs normally be using this API directly, or should
.\" they rather be using interfaces in the numactl package?
.\" (e.g., compare with recommendation in mbind(2)).
-.\"
-.\" Japanese Version Copyright (c) 2008 Akihiro MOTOKI
-.\" all rights reserved.
-.\" Translated 2008-10-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\"
-.TH MOVE_PAGES 2 2010-06-11 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH MOVE_PAGES 2 2010\-06\-11 Linux "Linux Programmer's Manual"
.SH 名前
move_pages \- あるプロセスの個々のページを別のノードに移動する
.SH 書式
.nf
-.B #include <numaif.h>
+\fB#include <numaif.h>\fP
.sp
-.BI "long move_pages(int " pid ", unsigned long count, void **" pages ,
-.BI " const int *" nodes ", int *" status ", int " flags );
+\fBlong move_pages(int \fP\fIpid\fP\fB, unsigned long count, void **\fP\fIpages\fP\fB,\fP
+\fB const int *\fP\fInodes\fP\fB, int *\fP\fIstatus\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.sp
\fI\-lnuma\fP とリンクする。
.SH 説明
-.BR move_pages ()
-は、プロセス
-.I pid
-の指定されたページ
-.I pages
-を
-.I nodes
-で指定されたメモリノードに移動する。
-移動の結果は
-.I status
-に反映される。
-.I flags
-では移動されるページに関する制約を指定する。
+\fBmove_pages\fP() は、プロセス \fIpid\fP の指定されたページ \fIpages\fP を \fInodes\fP
+で指定されたメモリノードに移動する。 移動の結果は \fIstatus\fP に反映される。 \fIflags\fP では移動されるページに関する制約を指定する。
-.I pid
-は、移動されるページが属するプロセスの ID である。
-別のプロセスのページを移動するためには、呼び出し元が特権
-.RB ( CAP_SYS_NICE )
-を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が
-ページ移動対象のプロセスの実ユーザ ID か保存 set-user-ID のどちらかと
-一致しなければならない。
-.I pid
-が 0 の場合、
-.BR move_pages ()
+\fIpid\fP は、移動されるページが属するプロセスの ID である。 別のプロセスのページを移動するためには、呼び出し元が特権
+(\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が ページ移動対象のプロセスの実ユーザ
+ID か保存 set\-user\-ID のどちらかと 一致しなければならない。 \fIpid\fP が 0 の場合、 \fBmove_pages\fP()
は呼び出したプロセスのページを移動する。
-.I count
-は移動するページ数である。
-.I count
-により
-.IR pages ,
-.IR nodes ,
-.I status
-の 3 つの配列の大きさが定義される。
+\fIcount\fP は移動するページ数である。 \fIcount\fP により \fIpages\fP, \fInodes\fP, \fIstatus\fP の 3
+つの配列の大きさが定義される。
-.I pages
-は、移動すべきページへのポインタの配列であり、
-各ポインタはページ境界に揃えた値を指定すべきである。
.\" FIXME what if they are not aligned?
-.I pid
+\fIpages\fP は、移動すべきページへのポインタの配列であり、 各ポインタはページ境界に揃えた値を指定すべきである。 \fIpid\fP
で指定されたプロセスで見えるアドレスを指定する。
-.I nodes
-は、各ページの希望の移動場所を示す整数値の配列であり、
-配列の各要素はノード番号である。
-.I nodes
-には NULL を指定することもでき、この場合には
-.BR move_pages ()
-はどのページも移動しないが、各ページが現在配置されているノードを配列
-.I status
-に格納して返す。どのページを移動する必要があるかを判断するために、
-各ページの状態の取得が必要な場合もある。
+\fInodes\fP は、各ページの希望の移動場所を示す整数値の配列であり、 配列の各要素はノード番号である。 \fInodes\fP には NULL
+を指定することもでき、この場合には \fBmove_pages\fP() はどのページも移動しないが、各ページが現在配置されているノードを配列
+\fIstatus\fP に格納して返す。どのページを移動する必要があるかを判断するために、 各ページの状態の取得が必要な場合もある。
-.I status
-は、各ページの状態を表す整数値の配列である。
-この配列に有効な値が格納されるのは、
-.BR move_pages ()
+\fIstatus\fP は、各ページの状態を表す整数値の配列である。 この配列に有効な値が格納されるのは、 \fBmove_pages\fP()
がエラーを返さなかった場合だけである。
-.I flags
-には、どの種類のページを移動するかを指定する。
-.B MPOL_MF_MOVE
-は、そのプロセスが排他的に使用しているページだけを移動することを意味する。
-.B MPOL_MF_MOVE_ALL
-は、複数のプロセス間で共有されているページも移動できることを意味する。
-.B MPOL_MF_MOVE_ALL
-を使用するためには、そのプロセスが特権
-.RB ( CAP_SYS_NICE )
-を持っていなければならない。
-.SH status 配列に格納されるページ状態
-.I status
-配列の各要素として、以下の値が返される。
-.TP
-.B 0..MAX_NUMNODES
+\fIflags\fP には、どの種類のページを移動するかを指定する。 \fBMPOL_MF_MOVE\fP
+は、そのプロセスが排他的に使用しているページだけを移動することを意味する。 \fBMPOL_MF_MOVE_ALL\fP
+は、複数のプロセス間で共有されているページも移動できることを意味する。 \fBMPOL_MF_MOVE_ALL\fP を使用するためには、そのプロセスが特権
+(\fBCAP_SYS_NICE\fP) を持っていなければならない。
+.SH "status 配列に格納されるページ状態"
+\fIstatus\fP 配列の各要素として、以下の値が返される。
+.TP
+\fB0..MAX_NUMNODES\fP
そのページが配置されているノードを示す。
-.TP
-.B -EACCES
-そのページは複数のプロセスによりマップされており、
-.B MPOL_MF_MOVE_ALL
-が指定された場合にのみ移動できる。
-.TP
-.B -EBUSY
-そのページが現在ビジーであり、移動できない。後でもう一度試すこと。
-この状況は、ページが I/O の実行中であったり、カーネルの他のサブシステム
+.TP
+\fB\-EACCES\fP
+そのページは複数のプロセスによりマップされており、 \fBMPOL_MF_MOVE_ALL\fP が指定された場合にのみ移動できる。
+.TP
+\fB\-EBUSY\fP
+そのページが現在ビジーであり、移動できない。後でもう一度試すこと。 この状況は、ページが I/O の実行中であったり、カーネルの他のサブシステム
がそのページへの参照を保持している場合に発生する。
-.TP
-.B -EFAULT
-そのページが zero page であるか、そのメモリ領域はそのプロセスにより
-マップされていない。
-.TP
-.B -EIO
-ページを書き戻す (write back) ことができない。
-ページが dirty で、ファイルシステムが dirty なページを移動できるような
-移動機能を提供していないため、そのページを移動するためにはページを
-書き戻さなければならない。
-.TP
-.B -EINVAL
-dirty なページを移動できない。
-ファイルシステムが dirty なページを移動するための機能を提供しておらず、
-ページを書き戻す能力もない。
-.TP
-.B -ENOENT
+.TP
+\fB\-EFAULT\fP
+そのページが zero page であるか、そのメモリ領域はそのプロセスにより マップされていない。
+.TP
+\fB\-EIO\fP
+ページを書き戻す (write back) ことができない。 ページが dirty で、ファイルシステムが dirty なページを移動できるような
+移動機能を提供していないため、そのページを移動するためにはページを 書き戻さなければならない。
+.TP
+\fB\-EINVAL\fP
+dirty なページを移動できない。 ファイルシステムが dirty なページを移動するための機能を提供しておらず、 ページを書き戻す能力もない。
+.TP
+\fB\-ENOENT\fP
ページが存在しない。
-.TP
-.B -ENOMEM
+.TP
+\fB\-ENOMEM\fP
移動先のノードでメモリを確保することができない。
.SH 返り値
-成功すると、
-.BR move_pages ()
-は 0 を返す。
.\" FIXME Is the following quite true: does the wrapper in numactl
.\" do the right thing?
-エラーの場合、\-1 を返し、
-.I errno
-にエラーを示す値を設定する。
+成功すると、 \fBmove_pages\fP() は 0 を返す。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
.SH エラー
-.TP
-.B E2BIG
+.TP
+\fBE2BIG\fP
移動すべきページが多過ぎる。
-.TP
-.B EACCES
+.TP
+\fBEACCES\fP
.\" FIXME Clarify "current cpuset". Is that the cpuset of the caller
.\" or the target?
移動先のノードのいずれかが現在の CPU 集合では許可されていない。
-.TP
-.B EFAULT
+.TP
+\fBEFAULT\fP
パラメータ配列にアクセスできなかった。
-.TP
-.B EINVAL
-.I flags
-に
-.B MPOL_MF_MOVE
-でも
-.B MPOL_MF_MOVE_ALL
+.TP
+\fBEINVAL\fP
+\fIflags\fP に \fBMPOL_MF_MOVE\fP でも \fBMPOL_MF_MOVE_ALL\fP
でもない値が指定されたか、カーネルスレッドのページを移動させようとした。
-.TP
-.B ENODEV
+.TP
+\fBENODEV\fP
移動先のノードのいずれかがオンラインでない。
-.TP
-.B ENOENT
-移動が必要なページが全く見つからなかった。
-指定された全てのページが、すでに移動先のノードに存在するか、存在しないか、
-無効なアドレスであったか、複数のプロセスによってマップされていて移動でき
-なかったか、のいずれかであった。
-.TP
-.B EPERM
-呼び出し元は
-.B MPOL_MF_MOVE_ALL
-を指定したが、十分な特権
-.RB ( CAP_SYS_NICE )
-を持っていない。
-または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、
-それを行えるだけの特権
-.RB ( CAP_SYS_NICE )
+.TP
+\fBENOENT\fP
+移動が必要なページが全く見つからなかった。 指定された全てのページが、すでに移動先のノードに存在するか、存在しないか、
+無効なアドレスであったか、複数のプロセスによってマップされていて移動でき なかったか、のいずれかであった。
+.TP
+\fBEPERM\fP
+呼び出し元は \fBMPOL_MF_MOVE_ALL\fP を指定したが、十分な特権 (\fBCAP_SYS_NICE\fP) を持っていない。
+または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、 それを行えるだけの特権 (\fBCAP_SYS_NICE\fP)
を持っていなかった。
-.TP
-.B ESRCH
+.TP
+\fBESRCH\fP
プロセスが存在しない。
.SH バージョン
-.BR move_pages ()
-は、バージョン 2.6.18 で初めて Linux に登場した。
+\fBmove_pages\fP() は、バージョン 2.6.18 で初めて Linux に登場した。
.SH 準拠
このシステムコールは Linux 固有である。
.SH 注意
-ライブラリによるサポートについては
-.BR numa (7)
-を参照。
+ライブラリによるサポートについては \fBnuma\fP(7) を参照。
.\" FIXME Clarify "current cpuset". Is that the cpuset of the caller
.\" or the target?
-現在の CPU 集合で許可されているノードの集合を取得するには、フラグ
-.B MPOL_F_MEMS_ALLOWED
-を指定して
-.BR get_mempolicy (2)
-を使用すればよい。
-取得した情報は、CPU 集合の手動または自動での再構成により
+現在の CPU 集合で許可されているノードの集合を取得するには、フラグ \fBMPOL_F_MEMS_ALLOWED\fP を指定して
+\fBget_mempolicy\fP(2) を使用すればよい。 取得した情報は、CPU 集合の手動または自動での再構成により
いつ何時変化してしまうか分からない。
-この関数を使用すると、ページの位置 (ノード) が
-指定されたアドレスに対して設定されたメモリポリシー
-.RB ( mbind (2)
-参照) や指定されたプロセスに対して設定されたメモリポリシー
-.RB ( set_mempolicy (2)
-参照) に違反してしまう可能性がある。
-つまり、メモリポリシーは
-.BR move_pages ()
-で使われる移動先ノードを制限しないということである。
+この関数を使用すると、ページの位置 (ノード) が 指定されたアドレスに対して設定されたメモリポリシー (\fBmbind\fP(2) 参照)
+や指定されたプロセスに対して設定されたメモリポリシー (\fBset_mempolicy\fP(2) 参照) に違反してしまう可能性がある。
+つまり、メモリポリシーは \fBmove_pages\fP() で使われる移動先ノードを制限しないということである。
-ヘッダファイル
-.I <numaif.h>
-は glibc には含まれておらず、
-.I libnuma-devel
+ヘッダファイル \fI<numaif.h>\fP は glibc には含まれておらず、 \fIlibnuma\-devel\fP
か同様のパッケージをインストールする必要がある。
.SH 関連項目
-.BR get_mempolicy (2),
-.BR mbind (2),
-.BR set_mempolicy (2),
-.BR numa (3),
-.BR numa_maps (5),
-.BR cpuset (7),
-.BR numa (7),
-.BR migratepages (8),
-.BR numa_stat (8)
+\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),
+\fBnuma_stat\fP(8)