swapon(2) System Calls Manual swapon(2) BEZEICHNUNG swapon, swapoff - Auslagerung von Hauptspeicherbereichen (Swapping) auf ein Gerat oder in eine Datei starten/beenden BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int swapon(const char *pfad, int swap_schalter); int swapoff(const char *pfad); BESCHREIBUNG swapon weist den Auslagerungsbereich fur Hauptspeicherbereiche der Datei oder dem blockorientierten Gerat zu, das in pfad angegeben wurde. swapoff beendet das Auslagern von Hauptspeicherbereichen in der Datei oder dem blockorientierten Gerat, das in pfad angegeben wurde. Falls der Schalter SWAP_FLAG_PREFER im swapon()-Argument swap_schalter angegeben wurde, hat der neue Auslagerungsbereich fur Hauptspeicherbereiche eine hohere Prioritat als der vorgegebene. Die Prioritat ist in swap_schalter kodiert als: (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK Falls der Schalter SWAP_FLAG_DISCARD im swapon()-Argument swap_schalter angegeben wurde, werden freigegebene Auslagerungsseiten fur Hauptspeicherbereiche verworfen, bevor sie erneut benutzt werden, falls das Gerat mit dem Auslagerungsbereich fur Hauptspeicherbereiche die Aktionen zum Verwerfen oder Kurzen (>>discard<< und >>trim<<) unterstutzt. (Dies konnte die Leistung auf einigen Festspeichergeraten (SSD) verbessern, was aber oft nicht der Fall ist.) Siehe auch die ANMERKUNGEN. Diese Funktionen konnen nur von einem privilegierten Prozess (einem, der uber die CAP_SYS_ADMIN-Capability verfugt) benutzt werden. Prioritat Jeder Auslagerungsbereich fur den Arbeitsspeicher hat eine Prioritat, hoch oder niedrig. Die Standardprioritat ist niedrig. Innerhalb der Auslagerungsbereiche mit niedriger Prioritat werden neue Bereiche niedriger als bereits vorhandene Bereiche priorisiert. Alle mit _swap_schalter_ gesetzten Prioritaten sind hoch, hoher als der Standardwert. Beim Aufruf kann die Prioritat auf einen beliebigen nicht negativen Wert gesetzt werden. Hohere Werte bedeuten hohere Prioritaten. Auslagerungsbereiche werden gemass ihrer Prioritat reserviert, solche mit der hochsten Prioritat als erste. Ein hoher priorisierter Bereich wird zunachst vollstandig genutzt, bevor ein Bereich mit niedrigerer Prioritat verwendet wird. Sind mehrere Bereiche mit derselben Prioritat definiert und sind alle Bereiche mit hoherer Prioritat bereits vollstandig genutzt, so werden neue Speicherseiten unter den gleich priorisierten Bereichen reihum reserviert. Ab Linux 1.3.6 befolgt der Kernel diese Regeln gewohnlich, aber es gibt auch Ausnahmen. RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EBUSY (Fur swapon()) Der angegebene pfad wird bereits als Auslagerungsbereich fur Hauptspeicherbereiche benutzt. EINVAL Die Datei pfad existiert, bezieht sich aber weder auf eine normale Datei noch auf ein Blockgerat; EINVAL (swapon()) Der angegebene Pfad enthalt keine gultige Auslagerungssignatur oder befindet sich in einem speicherinternen Dateisystem wie beispielsweise tmpfs(5). EINVAL (seit Linux 3.4) (swapon()) Ein unzulassiger Schalter wurde in swapflags angegeben. EINVAL (swapoff()) pfad ist derzeit kein Auslagerungsbereich. ENFILE Die systemweite Beschrankung fur die Gesamtzahl offener Dateien wurde erreicht. ENOENT Die Datei pfad existiert nicht. ENOMEM Das System verfugt nicht uber ausreichenden Speicher, um das Auslagern von Hauptspeicherbereichen zu starten. EPERM Der Aufrufende verfugt nicht uber die Capability CAP_SYS_ADMIN. Alternativ wird die maximale Anzahl der Auslagerungsdateien fur Hauptspeicherbereiche benutzt; Lesen Sie die folgenden ANMERKUNGEN. STANDARDS Linux. GESCHICHTE Das Argument swapflags wurde in Linux 1.3.2 eingefuhrt. ANMERKUNGEN Die Partition oder der Pfad mussen mit mkswap(8) vorbereitet werden. Es gibt eine Obergrenze fur die Anzahl der benutzbaren Auslagerungsdateien von Hauptspeicherbereichen, die in der Kernel-Konstante MAX_SWAPFILES definiert wird. Vor Linux 2.4.10 hatte MAX_SWAPFILES den Wert 8; seit Linux 2.4.10 hat sie den Wert 32. Seit Linux 2.6.18 ist die Grenze um zwei herabgesetzt (daher 30), seit Linux 5.19 wird die Grenze um 3 herabgesetzt (daher: 29), falls der Kernel mit der Option CONFIG_MIGRATION erstellt wurde (die zwei Eintrage in der Auslagerungstabelle von Hauptspeicherbereichen fur die Seiten-Migrationsfunktionen von mbind(2) und migrate_pages(2) reserviert). Seit Linux 2.6.32 wird die Grenze ferner um eins herabgesetzt, falls der Kernel mit der Option CONFIG_MEMORY_FAILURE erstellt wurde. Seit Linux 5.14 ist die Beschrankung weiter auf 4 reduziert, falls der Kernel mit der Option CONFIG_DEVICE_PRIVATE gebaut wurde. Seit Linux 5.19 ist die Grenze weiter um 1 herabgesetzt, falls der Kernel mit der Option CONFIG_PTE_MARKER erstellt wurde. Verwerfen von Auslagerungsseiten von Hauptspeicherbereichen wurde in Linux 2.6.29 eingefuhrt, dann wurde es in Linux 2.6.36 vom Schalter SWAP_FLAG_DISCARD abhangig gemacht, wodurch immer noch die ganze Auslagerung von Hauptspeicherbereichen beim Aufruf von swapon() verworfen (>>discard<<) wird, sogar, wenn das Schalter-Bit nicht gesetzt ist. SIEHE AUCH mkswap(8), swapoff(8), swapon(8) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Ralf Demmer , Chris Leick , Mario Blattermann , Helge Kreutzmann und Joachim Schnitter erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.8 2. Mai 2024 swapon(2)