Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       spu_create - Créer un nouveau contexte spu

SYNOPSIS

       #include <sys/types.h>
       #include <sys/spu.h>

       int spu_create(const char *pathname, int flags, mode_t mode,
                      int neighbor_fd);

       Note : il n'existe pas d'enveloppe pour cet appel système dans la glibc ; voir NOTES.

DESCRIPTION

       L'appel  système  spu_create() est utilisé sur les PowerPC disposant de l'architecture du processeur Cell
       dans le but d'accéder aux SPU (Synergistic Processor Units). Il crée un nouveau contexte logique pour  un
       SPU dans pathname et renvoie le descripteur de fichier qui lui est associé. pathname doit pointer vers un
       répertoire  qui  n'existe pas sur le point de montage du système de fichiers SPU (spufs). Si spu_create()
       réussit, un répertoire est créé dans pathname et est rempli par les fichiers décrits dans spufs(7).

       Lorsqu'un contexte est créé, le descripteur de fichier  renvoyé  ne  peut  qu'être  passé  à  spu_run(2),
       utilisé  comme  paramètre  dirfd  pour  les appels système de la famille *at (par exemple, openat(2)), ou
       fermé ; d'autres opérations ne sont pas définies. Un contexte logique SPU  est  détruit  (avec  tous  les
       fichiers  créés  dans  le  répertoire  pathname  du contexte) lorsque la dernière référence au contexte a
       disparu ; cela survient généralement lorsque le descripteur  de  fichier  renvoyé  par  spu_create()  est
       fermé.

       Le  paramètre  mode  (sauf  les  bits  positionnés  dans l'umask(2) du processus) indique les permissions
       utilisées pour créer le nouveau répertoire sur le système de fichiers spufs. Consultez stat(2)  pour  une
       liste complète des valeurs de mode.

       The neighbor_fd is used only when the SPU_CREATE_AFFINITY_SPU flag is specified; see below.

       Le paramètre flags vaut zéro ou une combinaison par un OU bit à bit des options suivantes :

       SPU_CREATE_EVENTS_ENABLED
              Plutôt  que  d'utiliser  des  signaux  pour signaler des erreurs DMA, utiliser l'argument event de
              spu_run(2).

       SPU_CREATE_GANG
              Créer un gang SPU plutôt qu'un contexte. (Un gang est un groupe  de  contextes  SPU  qui  sont  en
              relation  fonctionnelle  entre  eux  et  qui  partagent  des paramètres d'ordonnancement communs —
              priorité et politique. Dans le futur, l'ordonnancement de gangs pourra être implémenté faisant que
              le groupe soit commuté comme une unité simple.)

              Un nouveau répertoire sera créé à l'endroit indiqué par l'argument pathname.  Le  gang  peut  être
              utilisé  pour  tenir  d'autres contextes en fournissant un nom de chemin qui soit à l'intérieur du
              répertoire du gang pour des appels ultérieurs à spu_create().

       SPU_CREATE_NOSCHED
              Crée un contexte qui ne soit pas affecté par l'ordonnanceur SPU. Une  fois  que  le  contexte  est
              lancé, il ne sera pas déplanifié jusqu'à ce qu'il soit détruit par le processus créateur.

              Parce  que  le  contexte  ne  peut  pas  être  supprimé  de la SPU, certaines fonctionnalités sont
              désactivées des contextes SPU_CREATE_NOSCHED. Seul un sous-ensemble de  fichiers  sera  disponible
              dans  le  répertoire  du  contexte  sur  le  système  de  fichiers  spufs.  De plus, les contextes
              SPU_CREATE_NOSCHED ne peuvent pas créer de fichier de vidage lors d'un plantage.

              La création de contextes SPU_CREATE_NOSCHED nécessite la capacité CAP_SYS_NICE.

       SPU_CREATE_ISOLATE
              Crée un contexte SPU isolé. Les  contextes  isolés  sont  protégés  de  certaines  opérations  PPE
              (PowerPC Processing Element), comme l'accès au stockage local de la SPU ou au registre NPC.

              La création de contextes SPU_CREATE_ISOLATE nécessite également l'attribut SPU_CREATE_NOSCHED.

       SPU_CREATE_AFFINITY_SPU (since Linux 2.6.23)
              Crée  un  contexte  avec  l'affinité  d'un  autre  contexte  SPU. Cette information d'affinité est
              utilisée dans l'algorithme d'ordonnancement du SPU. L'utilisation de cet attribut nécessite que le
              descripteur de fichier référençant l'autre contexte SPU soit passé dans l'argument neighbor_fd.

       SPU_CREATE_AFFINITY_MEM (since Linux 2.6.23)
              Crée un contexte avec l'affinité de la mémoire système. Cette information d'affinité est  utilisée
              dans l'algorithme d'ordonnancement du SPU.

VALEUR RENVOYÉE

       S'il  réussit,  spu_create() renvoie un nouveau descripteur de fichier. En cas d'erreur, il renvoie -1 et
       errno contient l'un des codes d'erreur listés ci-dessous.

ERREURS

       EACCES L'utilisateur en cours n'a pas accès au point de montage du spufs(7).

       EEXIST Un contexte SPU existe déjà dans le chemin fourni.

       EFAULT pathname n'est pas un pointeur de chaîne valable dans l'espace d'adresses du processus appelant.

       EINVAL pathname n'est pas un répertoire du point de montage du spufs(7), ou des options non valables  ont
              été fournies.

       ELOOP  Trop de liens symboliques trouvés lors de la résolution de pathname.

       EMFILE La limite du nombre de descripteurs de fichiers par processus a été atteinte.

       ENAMETOOLONG
              nom_chemin est trop long.

       ENFILE La limite du nombre total de fichiers ouverts pour le système entier a été atteinte.

       ENODEV Un contexte isolé a été demandé mais le matériel ne prend pas en charge l'isolation SPU.

       ENOENT Une partie de pathname n'a pas pu être résolue.

       ENOMEM Le noyau n'a pas pu allouer toutes les ressources nécessaires.

       ENOSPC Il  n'y  a  pas  suffisamment  de  ressources SPU disponibles pour créer un nouveau contexte ou la
              limite spécifique à l'utilisateur du nombre de contextes SPU a été atteinte.

       ENOSYS La fonctionnalité n'est par fournie par le système actuel parce que le matériel ne fournit pas  de
              SPU ou parce que le module spufs n'est pas chargé.

       ENOTDIR
              Un élément du chemin d'accès pathname n'est pas un répertoire.

       EPERM  The  SPU_CREATE_NOSCHED  flag  has  been  given,  but  the  user  does  not  have the CAP_SYS_NICE
              capability.

FICHIERS

       pathname doit pointer vers un emplacement du point de montage du spufs, qui est monté par convention dans
       /spu.

VERSIONS

       L'appel système spu_create() est apparu dans Linux 2.6.16.

CONFORMITÉ

       Cet appel système est spécifique à  Linux  et  implémenté  uniquement  sur  l'architecture  PowerPC.  Les
       programmes qui l'utilisent ne sont pas portables.

NOTES

       La  glibc  ne  fournit pas de fonction pour cet appel système : utilisez syscall(2) pour l'appeler. Notez
       cependant que spu_create() est conçu pour être appelé  depuis  des  bibliothèques  qui  implémentent  une
       interface  plus  abstraite  pour les SPU, pas pour être appelé directement par les applications normales.
       Consultez http://www.bsc.es/projects/deepcomputing/linuxoncell/ pour les bibliothèques recommandées.

       Prior to the addition of the SPU_CREATE_AFFINITY_SPU flag in Linux 2.6.23, the spu_create()  system  call
       took only three arguments (i.e., there was no neighbor_fd argument).

EXEMPLES

       Consultez spu_run(2) pour un exemple d'utilisation de spu_create()

VOIR AUSSI

       close(2), spu_run(2), capabilities(7), spufs(7)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions  pour  signaler  des  anomalies et la dernière version de cette page peuvent être trouvées à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier   <barbier@debian.org>   et    David    Prévot
       <david@tilapin.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Linux                                           21 décembre 2020                                   SPU_CREATE(2)