Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       alloc_hugepages, free_hugepages - 大きなサイズのページの割り当てと解放を行う

書式

       void *alloc_hugepages(int key, void *addr, size_t len,
                             int prot, int flag);

       int free_hugepages(void *addr);

説明

       システムコール  alloc_hugepages()  と free_hugepages()  は Linux 2.5.36 で導入され、2.5.54
       で再び削除された。 これらのシステムコールは i386 と ia64 のみで (かつ  CONFIG_HUGETLB_PAGE
       を指定してビルドされた場合に) 存在する。 Linux 2.4.20 では syscall 番号が存在するが、 呼び
       出すとエラー ENOSYS で失敗する。

       i386  では、メモリ管理ハードウェアは通常のページ  (4  KiB)  と  大きなサイズのページ   (以
       下、ヒュージページ; 2MiB または 4 MiB) を 扱うことができる。 同様に、ia64 もいくつかのサイ
       ズのヒュージページを扱うことができる。  これらのシステムコールは、ヒュージページをプロセス
       のメモリにマップしたり、 再び解放したりする。 ヒュージページはメモリ内にロックされ、スワッ
       プされない。

       key 引き数は識別子である。 0 の場合、ページは非公開になり、子プロセスに継承されない。 正の
       場合、ページは同じ key を使う他のアプリケーションと共有され、子プロセスに継承される。

       free_hugepages()     の    addr    引き数は、どのページを解放するかを指定する:   addralloc_hugepages()  の呼び出しの返り値である (全てのユーザがメモリを解放したときに、 そのメ
       モリは初めて実際に解放される)。  alloc_hugepages()  の addr 引き数はヒントであり、カーネル
       はそれに従うかもしれないし、 従わないかもしれない。 アドレスは正しく配置されなければならな
       い。

       len  引き数は要求されたセグメントの長さである。 これはヒュージページのサイズの倍数にしなけ
       ればならない。

       prot 引き数はセグメントのメモリ保護を指定する。 これは PROT_READ, PROT_WRITE, PROT_EXEC の
       いずれかである。

       key  が正でない限り、  flag  引き数は無視される。  key が正で、かつ flagIPC_CREAT であ
       り、かつ指定された key で (セグメントが) 何も存在しない場合、 新しいヒュージページセグメン
       トが作成される。  flag  が設定されておらず、かつ指定された  key のセグメントが存在しない場
       合、 ENOENT が返される。

返り値

       成功した場合、  alloc_hugepages()   は割り当てられた仮想アドレスを返し、  free_hugepages()
       は 0 を返す。 失敗した場合、-1 を返し、 errno が適切に設定される。

エラー

       ENOSYS このシステムコールはカーネルでサポートされていない。

ファイル

       /proc/sys/vm/nr_hugepages 設定された hugetlb ページの数。 このファイルは読み書きできる。

       /proc/meminfo    設定された    hugetlb    ページの数と、   3   つの変数   HugePages_Total,
       HugePages_Free, Hugepagesize の サイズについての情報を提供する。

準拠

       このシステムコールは Intel プロセッサ上の Linux に固有のものであり、  移植性が必要なプログ
       ラムで使うべきでない。

注意

       これらのシステムコールはなくなった。 これらは Linux 2.5.36 から 2.5.54 にのみ存在する。 代
       わりに今は  hugetlbfs  ファイルシステムを使うことができる。  (CPU  がサポートしている場合)
       ヒュージページを持つメモリは、  mmap(2) を使ってこの仮想ファイルシステムでファイルをマップ
       することで取得できる。

       ヒュージページの最大数は、 hugepages= 起動パラメータを使って指定できる。

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。