swapon
1. swapon.2.man
Manpage of SWAPON
SWAPON
Section: Руководство программиста Linux (2)Updated: 2010-06-15
Index Return to Main Contents
ИМЯ
swapon, swapoff - запускает/останавливает подкачку данных в файл/устройствоОБЗОР
#include <unistd.h>#include <asm/page.h> /* для PAGE_SIZE */
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);
ОПИСАНИЕ
swapon() включает использование файла или блочного устройства, указанного в path, в качестве подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного в path, в качестве подкачки данных.
У swapon() есть аргумент swapflags. Если в swapflags установлен бит
SWAP_FLAG_PREFER, то новое пространство подкачки будет иметь больший
приоритет, чем используемый по умолчанию. Приоритет задаётся в swapflags
следующим образом:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
Эти функции могут использоваться только привилегированным процессом (имеющим мандат CAP_SYS_ADMIN).
Приоритет
Каждое пространство подкачки имеет приоритет, высокий или низкий. По умолчанию задается низкий приоритет. Внутри пространств с низким приоритетом, новые пространства имеют ещё меньший приоритет, чем старые.Все приоритеты, установленные с помощью swapflags, выше используемого по умолчанию. Приоритет может быть любым неотрицательным числом (определяется вызывающим). Большее значение соответствует большему приоритету.
Страницы подкачки располагаются в пространствах согласно убыванию их приоритета. Если приоритеты различаются, то сначала полностью заполняются пространства с большим приоритетом. Если два пространства имеют одинаковый приоритет, и это наибольший приоритет из свободных, страницы распределяются между ними по "карусельному" принципу.
В Linux 1.3.6 работа ядра обычно следует этим правилам, но существуют исключения.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EBUSY
- (для swapon()) Указанный path уже используется в качестве пространства подкачки.
- EINVAL
- Файл path существует, но не является обычным файлом или блочным устройством; или, для swapon(), указанный путь не имеет правильной сигнатуры подкачки или располагается в файловой системе, работающей в памяти, например, tmpfs; или, для swapoff(), path в данный момент не является пространством подкачки.
- ENFILE
- Достигнуто максимальное количество открытых файлов в системе.
- ENOENT
- Файл path не существует.
- ENOMEM
- Не хватает памяти ядра для запуска процесса подкачки.
- EPERM
- Вызывающий не имеет мандата CAP_SYS_ADMIN. Или превышен лимит количества используемых пространств подкачки; см. ЗАМЕЧАНИЯ далее.
СООТВЕТСТВИЕ СТАНДАРТАМ
Эти функции предназначены только для работы в Linux и не должны использоваться в переносимых программах. Второй параметр swapflags впервые появился в Linux 1.3.2.ЗАМЕЧАНИЯ
Раздел или путь должны быть подготовлены к подкачке при помощи mkswap(8).Есть верхний предел на количество используемых файлов подкачки, он определяется константой ядра MAX_SWAPFILES. До ядра версии 2.4.10 значение MAX_SWAPFILES было равно 8; начиная с ядра 2.4.10, значение стало 32. Начиная с ядра 2.6.18, предел уменьшается на 2 (то есть стало 30), если ядро собирается с параметром CONFIG_MIGRATION (который резервирует 2 элемента таблицы подкачки для возможности переноса страниц mbind(2) и migrate_pages(2)). Начиная с ядра 2.6.32, предел ещё сокращается на 1, если ядро собирается с параметром CONFIG_MEMORY_FAILURE.
СМОТРИТЕ ТАКЖЕ
mkswap(8), swapoff(8), swapon(8)
Index
This document was created by man2html using the manual pages.
Time: 17:42:02 GMT, May 11, 2012




