SWAPON

Section: Linux Programmer's Manual (2)
Updated: 22 giugno 2007
Index Return to Main Contents
 

NOME

swapon, swapoff - start/stop swapping sul file/dispositivo  

SINTASSI

#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);  

DESCRIZIONE

swapon() imposta lo swap sul dispositivo a blocchi o sul file specificato in path. swapoff() ferma lo swap sul device a blocchi o sul file specificato in path.

swapon() prende l'argomento swapflags. Se swapflags ha il bit SWAP_FLAG_PREFER attivato la nuova area di swap avrÓ una prioritÓ maggiore del default. La prioritÓ Ŕ codificata in swapflags come:

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Queste funzioni possono essere usate solo da un processo privilegiato (uno che ha le funzionalitÓ CAP_SYS_ADMIN).  

PRIORIT┴

Ogni area di swap ha una sua prioritÓ, sia essa alta o bassa. Quella di default Ŕ bassa. Tra le aree a bassa prioritÓ le aree pi¨ nuove hanno sempre una prioritÓ pi¨ bassa delle aree pi¨ vecchie.

Tutte le prioritÓ impostate attraverso swapflags sono maggiori rispetto a quella di default. Esse possono avere qualunque valore non negativo scelto dal chiamante. A numero maggiore corrisponde prioritÓ maggiore.

Le pagine di swap sono allocate in aree in ordine di prioritÓ, prima quelle con prioritÓ maggiore. Prima di usare un'area con una certa prioritÓ tutte quelle con prioritÓ maggiore sono state utilizzate. Se vi sono due o pi¨ aree con la stessa prioritÓ, ed Ŕ la massima prioritÓ disponibile, le pagine sono allocate secondo uno schema a "round-robin".

Fino al kernel 1.3.6, si seguivano queste regole, ma con alcune eccezioni ( ?!?! ndt )  

VALORI RESTITUITI

In caso di successo viene restituito 0, altrimenti -1 ed errno contine il codice di errore.  

ERRORI

EBUSY
(per swapon()) Il percorso specificato Ŕ giÓ stato usato come area di swap.
EINVAL
Il percorso del file esiste, ma non fa riferimento nŔ a un file regolare, nŔ a un dispositivo a blocchi; o, per swapon(), il percorso indicato non contiene una firma di swap valida o risiede in un file system in memoria come tmpfs; o, per swapoff(), il percorso attualmente non Ŕ un'area di swap.
ENFILE
╚ stato raggiunto il limite del sistema sul numero totale di file aperti.
ENOENT
Il percorso del file non esiste.
ENOMEM
Il sistema ha memoria insufficiente per iniziare lo swapping.
EPERM
Il chiamante non ha la funzionalitÓ CAP_SYS_ADMIN .

In alternativa, il numero massimo di file di swap Ŕ giÓ in uso; vedere le NOTE sotto.

 

CONFORME A

Queste funzioni sono specifiche di Linux e non devono essere usate in programmi pensati per essere portabili. Il secondo argomento swapflags Ŕ stato introdotto in Linux 1.3.2.  

NOTE

La partizione o percorso devono essere preparati con mkswap(8).

C'Ŕ un limite superiore al numero di file di swap che si possono usare, definito dalla costante del kernel MAX_SWAPFILES. Prima del kernel 2.6.10, il valore di MAX_SWAPFILES era 8; dal kernel 2.6.10 il valore Ŕ 32. A partire dal kernel 2.6.18 il limite Ŕ sceso di due unitÓ (quindi: 30) se nel kernel Ŕ integrata l'opzione CONFIG_MIGRATION (che riserva due voci nella tabella di swap per le funzionalitÓ di migrazione di pagina del comando mbind(2) e migrate_pages(2)).  

VEDERE ANCHE

mkswap(8), swapoff(8), swapon(8)


 

Index

NOME
SINTASSI
DESCRIZIONE
PRIORIT┴
VALORI RESTITUITI
ERRORI
CONFORME A
NOTE
VEDERE ANCHE

This document was created by man2html, using the manual pages.
Time: 23:03:51 GMT, June 17, 2008