-
Notifications
You must be signed in to change notification settings - Fork 0
/
swapoff.html
298 lines (217 loc) · 7.97 KB
/
swapoff.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed Jan 29 11:27:02 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
h1 { text-align: center }
</style>
<title>SWAPON</title>
</head>
<body>
<h1 align="center">SWAPON</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUE">RETURN VALUE</a><br>
<a href="#ERRORS">ERRORS</a><br>
<a href="#CONFORMING TO">CONFORMING TO</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#COLOPHON">COLOPHON</a><br>
<hr>
<h2>NAME
<a name="NAME"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">swapon, swapoff
- start/stop swapping to file/device</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>#include
<unistd.h> <br>
#include <sys/swap.h></b></p>
<p style="margin-left:11%; margin-top: 1em"><b>int
swapon(const char *</b><i>path</i><b>, int</b>
<i>swapflags</i><b>); <br>
int swapoff(const char *</b><i>path</i><b>);</b></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>swapon</b>()
sets the swap area to the file or block device specified by
<i>path</i>. <b>swapoff</b>() stops swapping to the file or
block device specified by <i>path</i>.</p>
<p style="margin-left:11%; margin-top: 1em">If the
<b>SWAP_FLAG_PREFER</b> flag is specified in the
<b>swapon</b>() <i>swapflags</i> argument, the new swap area
will have a higher priority than default. The priority is
encoded within <i>swapflags</i> as:</p>
<p style="margin-left:17%; margin-top: 1em"><i>(prio
<< SWAP_FLAG_PRIO_SHIFT) &
SWAP_FLAG_PRIO_MASK</i></p>
<p style="margin-left:11%; margin-top: 1em">If the
<b>SWAP_FLAG_DISCARD</b> flag is specified in the
<b>swapon</b>() <i>swapflags</i> argument, freed swap pages
will be discarded before they are reused, if the swap device
supports the discard or trim operation. (This may improve
performance on some Solid State Devices, but often it does
not.) See also NOTES.</p>
<p style="margin-left:11%; margin-top: 1em">These functions
may be used only by a privileged process (one having the
<b>CAP_SYS_ADMIN</b> capability).</p>
<p style="margin-left:11%; margin-top: 1em"><b>Priority</b>
<br>
Each swap area has a priority, either high or low. The
default priority is low. Within the low-priority areas,
newer areas are even lower priority than older areas.</p>
<p style="margin-left:11%; margin-top: 1em">All priorities
set with <i>swapflags</i> are high-priority, higher than
default. They may have any nonnegative value chosen by the
caller. Higher numbers mean higher priority.</p>
<p style="margin-left:11%; margin-top: 1em">Swap pages are
allocated from areas in priority order, highest priority
first. For areas with different priorities, a
higher-priority area is exhausted before using a
lower-priority area. If two or more areas have the same
priority, and it is the highest priority available, pages
are allocated on a round-robin basis between them.</p>
<p style="margin-left:11%; margin-top: 1em">As of Linux
1.3.6, the kernel usually follows these rules, but there are
exceptions.</p>
<h2>RETURN VALUE
<a name="RETURN VALUE"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">On success,
zero is returned. On error, -1 is returned, and <i>errno</i>
is set appropriately.</p>
<h2>ERRORS
<a name="ERRORS"></a>
</h2>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p style="margin-top: 1em"><b>EBUSY</b></p></td>
<td width="2%"></td>
<td width="78%">
<p style="margin-top: 1em">(for <b>swapon</b>()) The
specified <i>path</i> is already being used as a swap
area.</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>EINVAL</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>The file <i>path</i> exists, but refers neither to a
regular file nor to a block device;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>EINVAL</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>(<b>swapon</b>()) The indicated path does not contain a
valid swap signature or resides on an in-memory filesystem
such as <b>tmpfs</b>(5).</p></td></tr>
</table>
<p style="margin-left:11%;"><b>EINVAL</b> (since Linux
3.4)</p>
<p style="margin-left:22%;">(<b>swapon</b>()) An invalid
flag value was specified in <i>flags</i>.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>EINVAL</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>(<b>swapoff</b>()) <i>path</i> is not currently a swap
area.</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>ENFILE</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>The system-wide limit on the total number of open files
has been reached.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>ENOENT</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>The file <i>path</i> does not exist.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>ENOMEM</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>The system has insufficient memory to start
swapping.</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>EPERM</b></p></td>
<td width="2%"></td>
<td width="78%">
<p>The caller does not have the <b>CAP_SYS_ADMIN</b>
capability. Alternatively, the maximum number of swap files
are already in use; see NOTES below.</p></td></tr>
</table>
<h2>CONFORMING TO
<a name="CONFORMING TO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">These functions
are Linux-specific and should not be used in programs
intended to be portable. The second <i>swapflags</i>
argument was introduced in Linux 1.3.2.</p>
<h2>NOTES
<a name="NOTES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">The partition
or path must be prepared with <b>mkswap</b>(8).</p>
<p style="margin-left:11%; margin-top: 1em">There is an
upper limit on the number of swap files that may be used,
defined by the kernel constant <b>MAX_SWAPFILES</b>. Before
kernel 2.4.10, <b>MAX_SWAPFILES</b> has the value 8; since
kernel 2.4.10, it has the value 32. Since kernel 2.6.18, the
limit is decreased by 2 (thus: 30) if the kernel is built
with the <b>CONFIG_MIGRATION</b> option (which reserves two
swap table entries for the page migration features of
<b>mbind</b>(2) and <b>migrate_pages</b>(2)). Since kernel
2.6.32, the limit is further decreased by 1 if the kernel is
built with the <b>CONFIG_MEMORY_FAILURE</b> option.</p>
<p style="margin-left:11%; margin-top: 1em">Discard of swap
pages was introduced in kernel 2.6.29, then made conditional
on the <b>SWAP_FLAG_DISCARD</b> flag in kernel 2.6.36, which
still discards the entire swap area when <b>swapon</b>() is
called, even if that flag bit is not set.</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>mkswap</b>(8),
<b>swapoff</b>(8), <b>swapon</b>(8)</p>
<h2>COLOPHON
<a name="COLOPHON"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">This page is
part of release 5.02 of the Linux <i>man-pages</i> project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.</p>
<hr>
</body>
</html>