get_mempolicy

Autres langues

Langue: ja

Autres versions - même langue

Version: 2006-02-07 (fedora - 25/11/07)

Section: 2 (Appels système)

名前

get_mempolicy - プロセスの NUMA メモリのポリシーを取得する

書式

#include <numaif.h>
 
 int get_mempolicy(int *policy, unsigned long *nodemask,
                   unsigned long maxnode, unsigned long addr,
                   unsigned long flags);
 

説明

get_mempolicy() は、呼び出し元プロセスもしくは指定されたメモリアドレスの NUMA ポリシーを flags の設定に従って取得する。

NUMA (非対称メモリアクセス) マシンでは、CPU により メモリコントローラが異なり、距離も異なっている。 メモリポリシーは、どのノードのメモリをそのプロセスに 割り当てられるかを定めるものである。

flags に 0 が指定された場合、 (set_mempolicy(2) で設定された) 呼び出し元プロセスのデフォルトポリシーに関する情報を返す。

flagsMPOL_F_ADDR が指定された場合、 addr で指定されたメモリアドレスに適用されているポリシーに関する情報を返す。 set_mempolicy(2) を使って addr を含むページに対してポリシーが設定されていた場合には、 返されるポリシーはプロセスのデフォルトポリシーと違うことがある。

policy が NULL 以外の場合、ポリシーを返すのに policy が使われる。 nodemask が NULL 以外の場合、そのポリシーに対応するノードマスクを返すのに nodemask が使われる。 maxnodenodemask に格納できる最大ビット数に 1 を足した値を指定する。 ビット数は常に unsigned long の倍数に切り上げられる。

設定可能なポリシーの概要については set_mempolicy(2) を参照。

返り値

成功すると、 get_mempolicy() は 0 を返す。エラーの場合、-1 を返し、 errno にエラーを示す値を設定する。

準拠

このシステムコールは Linux 独自である。

注意

このマニュアルページは完全ではない。 ここには、 MPOL_F_NODE フラグの詳細について書かれていない。 MPOL_F_NODE フラグは get_mempolicy() の動作を変更するものである。 ここに書いていないのは意図的なものである: このフラグはアプリケーションによって使うことを意図したものではなく、 カーネルの将来のバージョンで、このフラグの動作は変更されるかもしれないし、 削除されるかもしれない。 このフラグを使用しないこと。

バージョンとライブラリでの対応

mbind(2) 参照。

関連項目

mbind(2), set_mempolicy(2), numactl(8), numa(3)