Sous-routine ra_attachrset
Objectif
Associa un composant de travail à un ensemble de ressources.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#include <sys/rset.h>
int ra_attachrset (rstype, rsid, rset, flags)
rstype_t rstype;
rsid_t rsid;
rsethandle_t rset;
unsigned int flags;Descriptif
La sous-routine Ra_attachrset associe un composant de travail spécifié par les paramètres Rstype et Rsid à un ensemble de ressources spécifié par le paramètre Rset .
Le composant de travail est un processus existant identifié par l'ID processus ou une unité d'exécution de noyau existante identifiée par l'ID unité d'exécution du noyau (tid). Un ID de processus ou une valeur d'ID d'unité d'exécution de RS_MYSELF indique que la pièce jointe s'applique respectivement au processus en cours ou à l'unité d'exécution de noyau en cours.
- L'ensemble de ressources doit contenir des processeurs disponibles dans le système.
- Le processus appelant doit posséder des droits d'accès root ou avoir la capacité CAP_NUMA_ATTACH.
- Le processus appelant doit posséder des droits d'accès root ou le même ID utilisateur effectif que le processus cible.
- Le processus cible ne doit contenir aucune unité d'exécution qui comporte des liaisons de processeur.
- L'ensemble de ressources doit être contenu dans (être un sous-ensemble de) Le jeu de ressources de partition du processus cible.
- L'ensemble de ressources doit être une perluète de toutes les unités d'exécution' Rset dans le processus cible.
- Pour R_FILDES Rstype, le processus appelant doit spécifier un descripteur de fichier ouvert, et il doit avoir un accès en écriture au fichier, ou l'ID utilisateur effectif du processus appelant doit être égal à l'ID utilisateur du propriétaire du fichier.
- Pour R_SHM Rstype, l'ID utilisateur effectif du processus appelant doit être égal au propriétaire du segment partagé.
- L'ensemble de ressources doit contenir des processeurs disponibles dans le système.
- Le processus appelant doit posséder des droits d'accès root ou avoir la capacité CAP_NUMA_ATTACH.
- Le processus appelant doit posséder des droits d'accès root ou le même ID utilisateur effectif que le processus cible.
- L'unité d'exécution cible ne doit pas avoir de liaisons de processeur de processeur sur un processeur.
- L'ensemble de ressources doit être contenu dans (être un sous-ensemble de) Le processus de l'unité d'exécution cible est efficace et la partition est définie.
Si l'une de ces conditions n'est pas remplie, la pièce jointe échouera.
Une fois qu'un processus est connecté à un ensemble de ressources, les unités d'exécution du processus s'exécutent uniquement sur les processeurs contenus dans l'ensemble de ressources. Une fois qu'une unité d'exécution de noyau est connectée à un jeu de ressources, les unités d'exécution s'exécutent uniquement sur les processeurs contenus dans l'ensemble de ressources.
L'allocation dynamique du processeur et le DLPAR peuvent invalider la pièce jointe du processeur qui est spécifiée. Un programme doit devenir DLPAR Aware pour résoudre ce problème.
- Tous les processeurs hors ligne sont ignorés.
- Si toutes les unités d'exécution matérielles (processeurs) d'un processeur physique (lors de l'exécution en mode Multithreading simultané , il y aura plus d'une unité d'exécution matérielle active par processeur physique) ne sont pas incluses dans l'ensemble de ressources spécifié, les autres processeurs du processeur sont ignorés lors de la construction de l'ensemble de ressources ST.
- Une seule ressource de processeur (unité d'exécution matérielle) par processeur physique est incluse dans l'ensemble de ressources ST.
Paramètres
| Article | Descriptif |
|---|---|
| Rstype | Indique le type de composant de travail à joindre à l'ensemble de ressources spécifié par le paramètre Rset . Le paramètre rstype doit avoir la valeur suivante, définie dans rset.h:
|
| Rsid | Identifie le composant de travail à joindre à l'ensemble de ressources spécifié par le paramètre Rset . Le paramètre Rsid doit être le suivant:
|
| rset | Indique le composant de travail (spécifié par les paramètres Rstype et Rsid ) à associer à l'ensemble de ressources. |
| Flags | Indique l'allocation de mémoire ou la règle de planification pour le composant de travail en cours de connexion. Le paramètre Indicateurs doit être le suivant:
Si la valeur du paramètre rstype est définie sur R_SUBRANGE, la règle d'allocation de mémoire est spécifiée dans la zone subrange_t su_policy plutôt que dans le paramètre flags . La valeur R_ATTACH_STRSET est applicable uniquement si la valeur du paramètre Rstype est définie sur R_PROCESS. La valeur R_ATTACH_STRSET indique que le processus doit être planifié avec une règle à unités d'exécution unique (uniquement sur une unité d'exécution matérielle par processeur physique). |
Valeurs renvoyées
En cas de réussite, la valeur 0 est renvoyée. En cas d'échec, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.
Codes d'erreur
La sous-routine Ra_attachrset échoue si une ou plusieurs des opérations suivantes sont vraies:
| Article | Descriptif |
|---|---|
| EINVAL | Les causes possibles sont les suivantes :
|
| ENODEV | L'ensemble de ressources spécifié par le paramètre Rset ne contient pas de processeurs disponibles, ou le paramètre R_ATTACH_STRSET Indicateurs est spécifié et l'ensemble de ressources ST construit ne dispose pas de processeurs disponibles. |
| ESRCH | L'unité d'exécution de processus ou de noyau identifiée par les paramètres Rstype et Rsid n'existe pas. |
| EPERM | Les causes possibles sont les suivantes :
|