rs_setpartition, Subroutine
Zweck
Legt die Partitionsressourcengruppe eines Prozesses fest.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <sys/rset.h>
int rs_setpartition(pid, rset, flags)
pid_t pid;
rsethandle_t rset;
unsigned int flags;Beschreibung
Die Unterroutine rs_setpartition setzt die Partitionsressourcen eines Prozesses. Mit der Subroutine kann auch die Partitionsressourcengruppe eines Prozesses entfernt werden.
Die Partitionsressourcengruppe begrenzt die Threads in einem Prozess auf die Ausführung auf den Prozessoren, die in der Partitionsressourcengruppe enthalten sind.
Die Arbeitskomponente ist ein bestehender Prozess, der durch die Prozess-ID identifiziert wird. Ein Prozess-ID-Wert von RS_MYSELF zeigt an, dass sich die Anlage auf den aktuellen Prozess bezieht.
- Der aufrufende Prozess muss Rootberechtigung haben.
- Die Ressourcengruppe muss Prozessoren enthalten, die im System verfügbar sind.
- Die neue Partitionsressourcengruppe muss gleich oder ein Superset der effektiven Ressourcengruppe des Zielprozesses sein.
- Der Zielprozess darf keine Threads mit bindprocessor-Bindungen an einen Prozessor enthalten.
- Die Ressourcenmenge muss eine Obermenge aller Threads des Zielprozesses sein.
- Alle Offlineprozessoren werden ignoriert.
- Wenn alle Hardware-Threads (Prozessoren) eines physischen Prozessors (im Simultanes Multithreading -Modus sind mehrere aktive Hardware-Threads pro physischem Prozessor vorhanden) nicht in der angegebenen Ressourcengruppe enthalten sind, werden die anderen Prozessoren des Prozessors beim Erstellen der ST-Ressourcengruppe ignoriert.
- Nur eine Prozessorressource (Hardware-Thread) pro physischem Prozessor ist in der ST-Ressourcengruppe enthalten.
Parameter
| Element | Beschreibung |
|---|---|
| pid | Gibt die Prozess-ID des Prozesses an, dessen Partitionsressourcengruppe festgelegt werden soll Der Wert RS_MICH gibt an, dass die Partitionsressourcengruppe des aktuellen Prozesses festgelegt werden soll. |
| rset | Gibt die Partitionsressourcengruppe an, die festgelegt werden soll Der Wert RS_DEFAULT gibt an, dass die Partitionsressourcengruppe des Prozesses entfernt werden soll. |
| Flags | Gibt die für den Prozess zu verwendende Richtlinie an Der Wert R_ATTACH_STRSET gibt an, dass der Prozess mit einer Einzelthreadrichtlinie terminiert werden soll (nur auf einem Hardware-Thread pro physischem Prozessor). |
Rückgabewerte
Bei erfolgreicher Ausführung wird der Wert 0 zurückgegeben. Ist dies nicht der Fall, wird der Wert -1 zurückgegeben, und die globale Variable errno wird gesetzt, um den Fehler anzuzeigen.
Fehlercodes
| Element | Beschreibung |
|---|---|
| EINVAL | Der Parameter R_ATTACH_STRSET flags ist angegeben und ein oder mehrere Prozessoren im Parameter rset sind nicht zur ausschließlichen Verwendung zugewiesen. |
| ENODEV | Die mit dem Parameter RSet angegebene Ressourcengruppe enthält keine verfügbaren Prozessoren, oder der Parameter R_ATTACH_STRSET Flags wurde angegeben, und die erstellte ST-Ressourcengruppe enthält keine verfügbaren Prozessoren. |
| ESRCH | Der durch den Parameter pid identifizierte Prozess existiert nicht. |
| EFAULT | Ungültige Adresse. |
| ENOMEM | Speicher nicht verfügbar. |
| EPERM | Eine der folgenden
Bedingungen ist aufgetreten:
|