Provided by: manpages-fr-dev_3.65d1p1-1_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 spu_create(const char *pathname, int flags, mode_t mode,
                      int neighbor_fd);

       Remarque : il n'existe pas de fonction glibc autour de cet appel système ; consultez 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 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
              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
              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.

       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.

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 Le processus a atteint sa limite du nombre de fichiers ouverts.

       ENAMETOOLONG
              pathname est trop long.

       ENFILE Le système a atteint la limite globale du nombre de fichiers ouverts.

       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  L'attribut SPU_CREATE_NOSCHED a été fourni mais l'utilisateur n'a pas la capacité CAP_SYS_NICE.

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.

EXEMPLE

       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 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                              5 août 2012                                     SPU_CREATE(2)