SWAPON
NAME
swapon, swapoff - start/stop swapping to file/device
SYNOPSIS
#include <unistd.h>
#include <asm/page.h> /* to find PAGE_SIZE */
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);
DESCRIPTION
swapon
sets the swap area to the file or block device specified by
path.
swapoff
stops swapping to the file or block device specified by
path.
swapon
takes a
swapflags
argument.
If
swapflags
has the
SWAP_FLAG_PREFER
bit turned on, the new swap area will have a higher priority than default.
The priority is encoded as:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
These functions may only be used by the super-user.
PRIORITY
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.
All priorities set with
swapflags
are high-priority, higher than default.
They may have any non-negative value chosen by the caller.
Higher numbers mean higher priority.
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.
As of Linux 1.3.6, the kernel usually follows these rules,
but there are exceptions.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and
errno
is set appropriately.
ERRORS
Many other errors can occur if
path
is not valid.
- EPERM
-
The user is not the super-user, or more than
MAX_SWAPFILES
(defined to be 8 in Linux 1.3.6) are in use.
- EINVAL
-
is returned if
path
exists, but is neither a regular path nor a block device.
- ENOENT
-
is returned if
path
does not exist.
- ENOMEM
-
is returned if there is insufficient memory to start swapping.
CONFORMING TO
These functions are Linux specific and should not be used in programs
intended to be portable.
The second `swapflags' argument was introduced in Linux 1.3.2.
NOTES
The partition or path must be prepared with
mkswap(8).
SEE ALSO
mkswap(8), swapon(8), swapoff(8)