swapon(2) System Calls Manual swapon(2) NUME swapon, swapoff - pornete/oprete gestionarea spaiului de interschimb (memoria virtuala, ,,swap") din fiier/dispozitiv BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int swapon(const char *path, int swapflags); int swapoff(const char *path); DESCRIERE swapon() activeaza spaiul de interschimb din fiierul sau dispozitivul de blocuri specificat de path. swapoff() dezactiveaza spaiul de interschimb din fiierul sau dispozitivul de blocuri specificat de path. Daca in argumentul SWAP_FLAG_PREFER este specificat fanionul swapon() swapflags, noul spaiu de interschimb va avea o prioritate mai mare decat cea implicita. Prioritatea este codificata in swapflags sub forma: swapflags: (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK In cazul in care in argumentul SWAP_FLAG_DISCARD este specificat in argumentul swapon() swapflags, paginile de interschimb eliberate vor fi inlaturate inainte de a fi reutilizate, daca dispozitivul de interschimb suporta operaia de inlaturare sau de taiere; (acest lucru poate imbunatai performanele pe unele dispozitive cu stare solida, dar adesea nu o face). A se vedea, de asemenea, seciunea NOTE. Aceste funcii pot fi utilizate numai de catre un proces privilegiat (unul care are capacitatea CAP_SYS_ADMIN). Prioritate Fiecare spaiu de interschimb are o prioritate, fie mare, fie mica. Prioritatea implicita este mica. In cadrul spaiilor cu prioritate redusa, spaiile mai noi au o prioritate i mai redusa decat cele mai vechi. Toate prioritaile stabilite cu swapflags sunt de prioritate inalta, mai mari decat cele implicite. Acestea pot avea orice valoare nenegativa aleasa de apelant. Un numar mai mare inseamna o prioritate mai mare. Paginile de interschimb sunt alocate din zone in ordinea prioritaii, cu prioritate maxima. In cazul zonelor cu prioritai diferite, o zona cu prioritate mai mare este epuizata inainte de a utiliza o zona cu prioritate mai mica. In cazul in care doua sau mai multe zone au aceeai prioritate, iar aceasta este cea mai mare prioritate disponibila, paginile sunt alocate pe baza de rotaie intre ele. Incepand cu Linux 1.3.6, nucleul respecta de obicei aceste reguli, dar exista i excepii. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EBUSY (pentru swapon()) path specificata este deja utilizata ca spaiu de interschimb. EINVAL Fiierul path exista, dar nu se refera nici la un fiier obinuit, nici la un dispozitiv de blocuri; EINVAL (swapon()) Ruta indicata nu conine o semnatura de spaiu de interschimb valida sau se afla pe un sistem de fiiere in memorie, cum ar fi tmpfs(5). EINVAL (incepand cu Linux 3.4) (swapon()) In swapflags a fost specificata o valoare nevalida a fanionului. EINVAL (swapoff()) path nu este in prezent un spaiu de interschimb. ENFILE Limita la nivel de sistem a numarului total de fiiere deschise a fost atinsa. ENOENT Fiierul path nu exista. ENOMEM Sistemul nu are suficienta memorie pentru a iniia gestionarea spaiului de interschimb. EPERM Apelantul nu are capacitatea CAP_SYS_ADMIN. Alternativ, numarul maxim de fiiere de spaii de interschimb (swap) este deja utilizat; a se vedea seciunea NOTE de mai jos. STANDARDE Linux. ISTORIC Argumentul swapflags a fost introdus in Linux 1.3.2. NOTE Partiia sau ruta trebuie sa fie pregatita cu mkswap(8). Exista o limita superioara a numarului de fiiere de interschimb ,,swap" care pot fi utilizate, definita de constanta nucleului MAX_SWAPFILES. Inainte de Linux 2.4.10, MAX_SWAPFILES avea valoarea 8; incepand cu Linux 2.4.10, aceasta are valoarea 32. Incepand cu Linux 2.6.18, limita este diminuata cu 2 (deci 30); incepand cu Linux 5.19, limita este diminuata cu 3 (deci: 29) daca nucleul este construit cu opiunea CONFIG_MIGRATION (care rezerva doua intrari in tabelul de interschimb pentru caracteristicile de migrare a paginilor din mbind(2) i migrate_pages(2)). Incepand cu Linux 2.6.32, limita este redusa i mai mult cu 1 daca nucleul este construit cu opiunea CONFIG_MEMORY_FAILURE. Incepand cu Linux 5.14, limita este redusa i mai mult cu 4 daca nucleul este construit cu opiunea CONFIG_DEVICE_PRIVATE. Incepand cu Linux 5.19, limita este redusa suplimentar cu 1 daca nucleul este construit cu opiunea CONFIG_PTE_MARKER. Retragerea paginilor de interschimb a fost introdusa in Linux 2.6.29, apoi a fost condiionata de fanionul SWAP_FLAG_DISCARD in Linux 2.6.36, care inca inlatura intreaga zona de interschimb atunci cand este apelat swapon(), chiar daca bitul de fanion nu este activat. CONSULTAI I mkswap(8), swapoff(8), swapon(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 22 decembrie 2023 swapon(2)