1 .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
3 .\" %%%LICENSE_START(VERBATIM)
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date. The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein. The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
25 .\" Modified by Michael Haardt <michael@moria.de>
26 .\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
27 .\" Modified 1995-07-22 by Michael Chastain <mec@duracef.shout.net>
28 .\" Modified 1995-07-23 by aeb
29 .\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
30 .\" Modified 1998-09-08 by aeb
31 .\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
32 .\" Modified 2004-10-10 by aeb
33 .\" 2004-12-14 mtk, Anand Kumria: added new errors
34 .\" 2007-06-22 Ivana Varekova <varekova@redhat.com>, mtk
35 .\" Update text describing limit on number of swap files.
37 .\"*******************************************************************
39 .\" This file was generated with po4a. Translate the source file.
41 .\"*******************************************************************
43 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
44 .\" all rights reserved.
45 .\" Translated Mon Mar 3 23:54:56 JST 1997
46 .\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
47 .\" Modified Tue Dec 1 00:08:07 JST 1998
48 .\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
49 .\" Updated & Modified Fri Feb 11 07:40:12 JST 2005
50 .\" by Yuichi SATO <ysato444@yahoo.co.jp>
51 .\" Updated 2007-09-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.64
52 .\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
54 .TH SWAPON 2 2014\-02\-26 Linux "Linux Programmer's Manual"
56 swapon, swapoff \- ファイル/デバイスへのスワップを開始/停止する
58 \fB#include <unistd.h>\fP
60 \fB#include <asm/page.h> /* PAGE_SIZE を見つけるため */\fP
62 \fB#include <sys/swap.h>\fP
64 \fBint swapon(const char *\fP\fIpath\fP\fB, int \fP\fIswapflags\fP\fB);\fP
66 \fBint swapoff(const char *\fP\fIpath\fP\fB);\fP
68 \fBswapon\fP() は \fIpath\fP で指定されたファイルやブロックデバイスにスワップ領域を設定する。 \fBswapoff\fP() は
69 \fIpath\fP で指定されたファイルやブロックデバイスへのスワップを停止する。
71 \fBswapon\fP() の \fIswapflags\fP 引き数に \fBSWAP_FLAG_PREFER\fP フラグが指定された場合、
72 新しいスワップ領域はデフォルトよりも高い優先度を持つ。
73 優先度は以下のように変換されて \fIswapflags\fP に指定する。
76 \fI(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK\fP
79 \fBSWAP_FLAG_DISCARD\fP フラグが \fBswapon\fP() の \fIswapflags\fP 引き数に指定された場合、
80 スワップデバイスが破棄 (discard) 操作や trim 操作をサポートしている場合には、
81 解放されたスワップページは再利用される前に破棄される
82 (これにより、SSD (Solid State Device) によっては性能が向上することがあるが、
86 これらの関数は特権プロセス (\fBCAP_SYS_ADMIN\fP ケーパビリティ (capability) を持つプロセス) のみが使用できる。
88 それぞれのスワップ領域は高 (high) と低 (low) のどちらかの優先度を持つ。 デフォルトの優先度は低である。
89 低い優先度の領域において、新しい領域は古い領域よりさらに低い 優先度を持つ。
91 \fIswapflags\fP が設定されたものは全て高い優先度となり、デフォルトよりも高い優先度を持つ。 使用者はそれらに負でない値が指定できる。
94 高い優先度の領域から順にスワップページとして使用される。 より低い優先度の領域を使用する前により高い優先度の
95 領域を使い切る。もし二つ以上の領域が同じ優先度を持ち、 使える中で一番高い優先度であれば、それらのページは間で ラウンドロビン方式で配分される。
97 Linux 1.3.6 において、カーネルは通常はこれらの規則に従っている。 しかし例外も存在している。
99 成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
103 (\fBswapon\fP() において) 指定された \fIpath\fP が既にスワップ領域として使用されている。
106 ファイル \fIpath\fP は存在するが、通常のファイルもブロックデバイスも参照していない。
109 (\fBswapon\fP()) 指定されたパスが有効なスワップの署名 (signature) を含んでいないか、tmpfs
110 のようなインメモリファイルシステム上にある。
112 \fBEINVAL\fP (Linux 3.4 以降)
113 (\fBswapon\fP()) \fIflags\fP に無効なフラグ値が指定された。
116 (\fBswapoff\fP()) \fIpath\fP が現在スワップ領域ではない。
119 オープンされたファイルの総数がシステム全体の上限に達していた。
122 ファイル \fIpath\fP が存在しない。
125 スワップを開始するのに十分なメモリーがシステムにない。
128 使用者が \fBCAP_SYS_ADMIN\fP ケーパビリティを持っていない。 もしくは、最大数のスワップファイルがすでに使用されている
131 これらの関数は Linux 特有であり、移植を意図したプログラムでは 使用してはいけない。 二番目の \fIswapflags\fP 引き数は Linux
134 パーティションやパスは \fBmkswap\fP(8) によって準備されていなければならない。
136 使用できるスワップファイルの数には上限があり、その上限は カーネル定数 \fBMAX_SWAPFILES\fP で定義される。
137 \fBMAX_SWAPFILES\fP の値は、カーネル 2.4.10 より前では 8、 カーネル 2.4.10 以降では 32 である。 カーネル
138 2.6.18 以降では、カーネルが \fBCONFIG_MIGRATION\fP オプションを有効にして作成された場合、 この上限が 2 少ない値 (つまり
139 30) となる (このカーネルでは、 \fBmbind\fP(2) と \fBmigrate_pages\fP(2)
140 のページマイグレーション機能用にスワップテーブルのエントリーが 二つ予約される)。 カーネル 2.6.32 以降では、カーネルが
141 \fBCONFIG_MEMORY_FAILURE\fP オプションを有効にして作成された場合、 この上限がさらに 1 少ない値となる。
143 .\" To be precise: 2.6.35.5
144 スワップページの破棄は、カーネル 2.6.29 で導入され、その後カーネル 2.6.36 で
145 \fBSWAP_FLAG_DISCARD\fP フラグが指定された場合にだけ実行されるようになったが、
146 今でも、このフラグビットが指定されていない場合であっても、
147 \fBswapon\fP が呼び出された際にスワップ領域全体の破棄が行われる。
149 \fBmkswap\fP(8), \fBswapoff\fP(8), \fBswapon\fP(8)
151 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.64 の一部
152 である。プロジェクトの説明とバグ報告に関する情報は
153 http://www.kernel.org/doc/man\-pages/ に書かれている。