kra_creatp-Kernel-Dienst

Zweck

Erstellt einen neuen Kernelprozess und ordnet den neuen Kernelprozess einer Ressourcengruppe zu.

Syntax

#include <sys/rset.h>
int kra_creatp (pid, rstype, rsid, flags)
pid_t *pid;
rstype_t rstype;
rsid_t rsid;
unsigned int flags;

Beschreibung

Der Kra_creatp -Kernel-Service erstellt einen neuen Kernelprozess und ordnet den neuen Kernelprozess einer Ressourcengruppe zu, die durch die Parameter RSTTYPE und RSID angegeben wird.

Der Kra_creatp -Kernel-Service kann ähnlich wie der Kreatp -Kernelservice verwendet werden, um einen neuen Kernelprozess zu erstellen.

Für eine erfolgreiche Zuordnung eines Kernelprozesses zu einer Ressourcengruppe müssen die folgenden Bedingungen erfüllt sein:
  • Die Ressourcengruppe muss Prozessoren enthalten, die im System verfügbar sind.
  • Der aufrufende Prozess muss entweder Rootberechtigung haben oder über die Berechtigung CAP_NUMA_ANHÄNGEN verfügen.
  • Der aufrufende Thread darf keine bindprocessor-Bindung an einen Prozessor haben.
  • Die Ressourcengruppe muss in der Partitionsressourcengruppe des aufrufenden Prozesses enthalten sein.
Anmerkung: Wenn der Kra_creatp -Kernel-Service verwendet wird, übernimmt der neue Kernelprozess Ressourcengruppenzuordnungen des übergeordneten Kernelprozesses, sofern kein Wert für das Flag R_NOINHERIT angegeben ist.

Parameter

Element Beschreibung
pid Zeiger auf ein Pid_t -Feld, um die Prozess-ID des neuen Kernelprozesses zu empfangen.
RSTYPE Gibt den Typ der Ressourcengruppe an, der der neue Kernelprozess zugeordnet wird. Wie in der Datei rset.h definiert, muss dieser Parameter auf den folgenden Wert gesetzt werden:

R_RSET: Ressourcengruppe.

RSID Gibt die Ressourcengruppe an, der der neue Kernelprozess zugeordnet wird. Dieser Parameter RSID akzeptiert den folgenden Wert:

Ressourcengruppen-ID (für den Parameterwert RSTTYPE von R_RSET): Setzen Sie das Feld rsid_t at_rset auf die gewünschte Ressourcengruppe.

Flags Gibt an, wie der neue Kernelprozess erstellt werden soll Der Parameter Flags akzeptiert den folgenden Wert:

R_NOINHERIT (oder als 0 angeben): Der neue Kernelprozess übernimmt nicht die Ressourcengruppenzuordnungen des übergeordneten Kernelprozesses.

Rückgabewerte

Nach erfolgreichem Abschluss gibt der Kra_creatp -Kernel-Service den Wert null (0) zurück. Wenn der Kra_creatp -Kernel-Service nicht erfolgreich ist, gibt er einen der folgenden Fehler zurück:

Element Beschreibung
EINVAL Gibt eine der folgenden Bedingungen an:
  • Der Parameter RSTTYPE enthält eine ungültige Typ-ID.
  • Der Parameter Flags enthält einen ungültigen Flagwert.
ENODEW Die angegebene Ressourcengruppe enthält keine verfügbaren Prozessoren.
EFAULT Ungültige Adresse.
EPERM Gibt eine der folgenden Bedingungen an:
  • Der aufrufende Prozess hat weder die Rootberechtigung noch die CAP_NUMA_ANHÄNGEN -Anhangsberechtigung.
  • Der aufrufende Prozess enthält einen oder mehrere Threads mit einer bindprocessor-Bindung an den Prozessor.
  • Die angegebene Ressourcengruppe ist nicht in der Partitionsressourcengruppe des aufrufenden Prozesses enthalten.
ENOMEM Es ist nicht genügend Speicher verfügbar, um einen neuen Kernelprozess zu erstellen.