swapon   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 22 juin 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
swapon, swapoff - Activer/désactiver un fichier ou un périphérique de swap  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <unistd.h>
#include <asm/page.h> /* pour avoir PAGE_SIZE */
#include <sys/swap.h>

int swapon(const char *path, int swapflags);
int swapoff(const char *path);  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
swapon() active le swap sur le fichier ou le périphérique en mode bloc indiqué dans path. swapoff() arrête le swap sur le fichier ou le périphérique en mode bloc indiqué dans path.

swapon() utilise un argument swapflags. Si cet argument a son bit SWAP_FLAG_PREFER à 1, la nouvelle zone de swap disposera d'une priorité plus élevée que la zone de swap par défaut. La priorité, dans swapflags, est codée ainsi :

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Cette fonction ne peut être appelée que par un processus privilégié (qui a la capacité CAP_SYS_ADMIN.  




Priorité   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Chaque zone de swap a une priorité, haute ou basse. La priorité par défaut est basse. Parmi les zones de basses priorités, les nouvelles zones sont toujours affectées d'une priorité inférieure à celle des zones précédentes.

Toutes les priorités fixées avec l'argument swapflags sont plus élevées que la priorité par défaut. Elles peuvent prendre n'importe quelle valeur positive ou nulle choisie par l'appelant. Plus la valeur est haute, plus la priorité est élevée.

Les pages de swap sont allouées dans les zones par ordre décroissant de priorité. Pour des zones de priorité différentes, la plus haute sera toujours remplie entièrement avant d'utiliser la zone de priorité plus faible. Si deux ou plus de zones ont la même priorite, et qu'il s'agit de la plus haute priorité disponible, les pages sont allouées en utilisant un algorithme Round-Robin entre elles.

Sur Linux 1.3.6, le noyau suit généralement ces règles, mais il y a parfois des exceptions.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
En cas de réussite 0 est renvoyé, sinon -1 est renvoyé et errno contient le code d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EBUSY
(pour swapon()) Le chemin path spécifié est déjà utilisé dans l'espace swap.
EINVAL
path existe mais n'est ni un chemin régulier, ni un périphérique bloc ; ou, pour swapon(), le chemin indiqué ne contient pas une signature swap valide ou réside sur un système de fichiers en mémoire comme tmpfs ; ou, pour swapoff(), path n'est pas actuellement dans un espace swap.
ENFILE
La limite du nombre total de fichiers ouverts sur le système a été atteinte.
ENOENT
path n'existe pas.
ENOMEM
Pas assez de mémoire pour démarrer le swapping.
EPERM
L'appelant n'a pas la capacité CAP_SYS_ADMIN. Ou bien, le nombre maximum de fichiers swap a été atteint ; voir NOTES plus loin. ou il y a plus de MAX_SWAPFILES zones de swap actives (précédemment 8 ; 32 depuis Linux 2.4.10).
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Ces fonctions sont spécifiques à Linux et ne doivent pas être employées dans des programmes destinés à être portables. Le second argument swapflags a été introduit dans Linux 1.3.2.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La partition ou le fichier doivent être préparés par mkswap(8).

Il y a une limite haute sur le nombre de fichiers qui peuvent être utilisés, définie par la constante MAX_SWAPFILES du noyau. Avant le noyau 2.6.10, MAX_SWAPFILES valait 8 ; depuis le noyau 2.6.10, MAX_SWAPFILES vaut 32. Depuis le noyau 2.6.18, la limite a été diminuée de 2 (donc : 30) si le noyau est compilé avec l'option CONFIG_MIGRATION (qui réserve deux entrées de table de swap pour les fonctionnalités de migration de pages de mbind(2) et migrate_pages(2)).  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
mkswap(8), swapoff(8), swapon(8)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 22 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 swapon ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
Priorité
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EBUSYERREURS
EINVALERREURS
ENFILEERREURS
ENOENTERREURS
ENOMEMERREURS
EPERMERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:34, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional