Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       spufs - Systeme de fichiers SPU

DESCRIPTION

       Le  systeme  de  fichiers  SPU est utilise sur les machines PowerPC qui
       utilisent  l'architecture  Cell  Broadband  Engine  Architecture   pour
       acceder aux SPU (<< Synergistic Processor Units >>).

       Le systeme de fichiers fournit un espace de noms similaire a la memoire
       partagee ou aux queues de messages POSIX. Les utilisateurs qui  ont  la
       permission  d'ecrire  sur  le  systeme  de  fichiers  peuvent  utiliser
       spu_create(2) pour etablir des contextes SPU dans le repertoire  racine
       du spufs.

       Chaque  contexte  SPU est represente par un repertoire contenant un jeu
       de  fichiers  predefinis.  Ces  fichiers  peuvent  etre  utilises  pour
       manipuler  l'etat  du SPU logique. Les utilisateurs peuvent changer les
       permissions  des  fichiers,  mais  ne  peuvent  ni  en  ajouter  ni  en
       supprimer.

   Options de montage
       uid=<uid>
              Definit  l'utilisateur  proprietaire du point de montage ; 0 par
              defaut (root).

       gid=<gid>
              Definit le groupe proprietaire  du  point  de  montage ;  0  par
              defaut (root).

       mode=<mode>
              Definir  le mode du repertoire de plus haut niveau du spufs sous
              la forme d'une chaine de valeur octale. La valeur par defaut est
              0775.

   Fichiers
       Les  fichiers  du spufs se comportent majoritairement de facon standard
       pour les appels systeme comme  read(2)  ou  write(2),  mais  ne  gerent
       souvent  qu'une  fraction  des  operations permises par les systemes de
       fichiers normaux. Cette liste detaille les  operations  gerees  et  les
       derogations  par  rapport  aux comportements standards qui sont decrits
       dans les differentes pages de manuel.

       Tous les fichiers  qui  gerent  l'operation  read(2)  gerent  egalement
       readv(2)  et  tous  les fichiers qui gerent l'operation write(2) gerent
       aussi writev(2). Tous les fichiers  gerent  les  familles  d'operations
       access(2)  stat(2),  mais pour cette derniere famille, les seuls champs
       de la structure stat renvoyee qui contiennent des informations  fiables
       sont st_mode, st_nlink, st_uid et st_gid.

       Tous   les   fichiers   gerent  les  operations  chmod(2)/fchmod(2)  et
       chown(2)/fchown(2), mais ne permettront pas des  autorisations  d'acces
       qui contredisent les operations possibles pour un fichier (par exemple,
       l'acces en lecture pour un fichier wbox).

       Le jeux actuel de fichiers est :

       /capabilities
              Contient une chaine representant les capacites, separees par des
              virgules, de ce contexte SPU. Les capacites possibles sont :

              sched  Ce contexte peut etre ordonnance.

              step   Ce  contexte  peut  etre  execute en mode pas-a-pas, pour
                     debogage.

              De nouveaux attributs de capacites pourront etre ajoutes dans le
              futur.

       /mem   Le  contenu  de  la memoire de stockage locale du SPU. On peut y
              acceder comme a un fichier de memoire  partage  standard  et  il
              contient   a  la  fois  le  code  et  les  donnees  de  l'espace
              d'adressage du SPU. Les operations possibles sur un fichier  mem
              ouvert sont :

              read(2), pread(2), write(2), pwrite(2), lseek(2)
                     Elles  operent  normalement,  a  l'exception de lseek(2),
                     write(2) et pwrite(2) qui ne sont pas  gerees  en  dehors
                     des  limites  du  fichier.  La  taille  du fichier est la
                     taille de l'espace de stockage  local  du  SPU,  qui  est
                     normalement de 256 kilooctets.

              mmap(2)
                     La   projection  de  mem  dans  l'espace  d'adressage  du
                     processus donne acces a l'espace de stockage local du SPU
                     depuis  l'espace  d'adressage  du  processus.  Seules les
                     projections MAP_SHARED sont autorisees.

       /regs  Contient la sauvegarde des  registres  a  vocation  generale  du
              contexte SPU. Ce fichier contient les valeurs 128 bits de chaque
              registre, du registre 0 au  registre  127,  dans  l'ordre.  Cela
              permet  de  consulter  le  contenu  de  ces registres a vocation
              generale a des fins de debogage.

              La lecture ou  l'ecriture  dans  ce  fichier  necessite  que  le
              contexte  ne  soit  pas  ordonnance,  aussi, l'utilisation de ce
              fichier n'est pas recommande lors de  l'execution  normale  d'un
              programme.

              Le  fichier  regs  n'existe  pas  pour  les contextes crees avec
              l'attribut SPU_CREATE_NOSCHED.

       /mbox  La premiere boite aux lettres pour la communication entre SPU et
              CPU.  Ce fichier est en lecture seule et peut etre lu par unites
              de 4 octets. Le fichier peut uniquement etre utilise en mode non
              bloquant  -  meme  poll(2)  ne  peut  pas  etre utuilise pour se
              bloquer sur ce fichier.  La  seule  operation  possible  sur  un
              fichier mbox ouvert est :

              read(2)
                     Si count est plus petit que quatre, read(2) renvoie -1 et
                     positionne errno a EINVAL.  S'il  n'y  a  pas  de  donnee
                     disponible  dans la boite aux lettres (c'est-a-dire si le
                     SPU n'a pas envoye de message dans la boite aux lettres),
                     la  valeur  de  retour  est -1 et errno est positionnee a
                     EAGAIN. Quand des  donnees  ont  ete  lues  avec  succes,
                     quatre octets sont places dans le tampon de donnees et la
                     valeur renvoyee est quatre.

       /ibox  La deuxieme boite aux lettres pour la communication entre SPU et
              CPU.  Ce  fichier  est similaire au premier fichier de boite aux
              lettres, mais peut etre  lu  en  mode  bloquant,  ainsi  appeler
              read(2)  sur un fichier ibox ouvert bloquera tant que le SPU n'a
              pas ecrit dans son canal boite a lettres (a moins que le fichier
              n'ait  ete  ouvert avec O_NONBLOCK, voir ci-dessous). Egalement,
              poll(2) et des appels systeme similaires peuvent  etre  utilises
              pour surveiller la presence de donnees dans la boite a lettres.

              Les operations possibles sur un fichier ibox ouvert sont :

              read(2)
                     Si count est plus petit que quatre, read(2) renvoie -1 et
                     positionne errno a EINVAL.  S'il  n'y  a  pas  de  donnee
                     disponible  dans la boite aux lettres et que le fichier a
                     ete ouvert avec O_NONBLOCK, la valeur renvoyee est -1  et
                     errno est positionnee a EAGAIN.

                     S'il  n'y  a  pas  de donnee disponible dans la boite aux
                     lettres et que le fichier a ete  ouvert  sans  l'attribut
                     O_NONBLOCK, l'appel bloquera jusqu'a ce que le SPU ecrive
                     dans son canal d'interruption de la  boite  aux  lettres.
                     Quand des donnees ont ete lues avec succes, quatre octets
                     sont places dans le tampon de donnees et la valeur quatre
                     est renvoyee.

              poll(2)
                     L'appel  de poll(2) sur le fichier ibox renvoie (POLLIN |
                     POLLRDNORM)  quand  des  donnees  sont   disponibles   en
                     lecture.

       /wbox  La  boite  aux  lettres  pour la communication entre CPU et SPU.
              Elle est en ecriture seulement et on peut y ecrire  des  donnees
              de  32 bits. Si la boite aux lettres est pleine, write(2) bloque
              et poll(2) peut etre utilise pour bloquer jusqu'a ce qu'il  soit
              possible  d'ecrire  dans  la  boite  aux lettres. Les operations
              possibles sur un fichier wbox ouvert sont :

              write(2)
                     Si count est plus petit que quatre, write(2)  renvoie  -1
                     et  positionne  errno  a  EINVAL. S'il n'y a pas d'espace
                     disponible dans la boite aux lettres et que le fichier  a
                     ete  ouvert avec O_NONBLOCK, la valeur renvoyee est -1 et
                     errno est positionnee a EAGAIN.

                     S'il n'y a pas d'espace  disponible  dans  la  boite  aux
                     lettres  et  que  le fichier a ete ouvert sans l'attribut
                     O_NONBLOCK, l'appel bloque jusqu'a ce  que  le  SPU  lise
                     dans  le  canal  de  sa  boite  aux  lettres PPE (PowerPC
                     Processing Element). Quand des donnees  ont  ete  ecrites
                     avec  succes, l'appel systeme renvoie 4 comme resultat de
                     la fonction.

              poll(2)
                     Un appel a poll(2) sur le fichier wbox renvoie (POLLOUT |
                     POLLWRNORM) quand de l'espace est disponible en ecriture.

       /mbox_stat, /ibox_stat, /wbox_stat
              Ce  sont des fichiers en lecture seule qui contiennent la taille
              des differentes queues des boites aux lettres,  c'est-a-dire  le
              nombre de mots qui peuvent etre lus dans mbox ou ibox ou peuvent
              etre ecrits dans wbox sans bloquer. Ces fichiers ne peuvent etre
              lus que par blocs de quatre octets et renvoient un nombre entier
              avec un  codage  grand  boutiste  (<< big  endian >>.  La  seule
              operation possible sur un fichier *box_stat ouvert est :

              read(2)
                     Si count est plus petit que quatre, read(2) renvoie -1 et
                     positionne errno a EINVAL. Sinon, une  valeur  de  quatre
                     octets est placee dans le tampon de donnees. Cette valeur
                     est le nombre  d'elements  qui  peuvent  etre  lus  (pour
                     mbox_stat  et  ibox_stat) ou ecrits (pour wbox_stat) dans
                     les  boites  aux  lettres  respectives  sans  bloquer  ou
                     renvoyer une erreur EAGAIN.

       /npc,  /decr,  /decr_status, /spu_tag_mask, /event_mask, /event_status,
       /srr0, /lslr
              Les registres internes du  SPU.  Ces  fichiers  contiennent  une
              chaine de caractere ASCII representant la valeur hexadecimale du
              registre specifie. Lire et ecrire dans ces fichiers (hormis npc,
              voir  ci-dessous)  necessite  que le contexte du SPU ne soit pas
              ordonnance, aussi, les acces frequents a ces  fichiers  ne  sont
              pas recommandes lors de l'execution normale d'un programme.

              Le contenu des fichiers est :

              npc             Compteur  programme  suivant - Valide uniquement
                              lorsque le SPU est dans un etat arrete.

              decr            Decrementeur SPU

              decr_status     Etat du decrementeur

              spu_tag_mask    Masque de drapeaux MFC pour le DMA SPU

              event_mask      Masque d'evenements pour les interruptions SPU

              event_status    Nombre  d'evenements  SPU  en  attente  (lecture
                              seule)

              srr0            Registre    contenant    l'adresse   de   retour
                              d'interruption

              lslr            Registre de limite de stokage local

              Les operations possibles sur ces fichiers sont :

              read(2)
                     Lit la valeur actuelle  du  registre.  Si  la  valeur  du
                     registre  est  plus grande que le tampon passe a read(2),
                     les lectures suivantes continueront a lire  a  partir  du
                     meme  tampon  jusqu'a  ce  que  la  fin  du  tampon  soit
                     atteinte.

                     Lorsqu'une  chaine  complete  a  ete  lue,   toutes   les
                     operations  de lecture suivantes renverront zero octet et
                     il faudra ouvrir un nouveau descripteur de  fichier  pour
                     lire une nouvelle valeur.

              write(2)
                     Un  appel a write(2) sur le fichier fixe le registre a la
                     valeur fournie dans la chaine. La chaine est analysee  du
                     debut jusqu'au premier caractere non numerique ou jusqu'a
                     la fin du tampon. Les ecritures  suivantes  sur  le  meme
                     descripteur   de  fichier  remplaceront  les  precedentes
                     ecritures.

                     Excepte pour le fichier npc, ces fichiers n'existent  pas
                     dans     les     contextes    crees    avec    l'attribut
                     SPU_CREATE_NOSCHED.

       /fpcr  Ce fichier donne acces au registre d'etat et de controle pour la
              virgule  flottante  (Floating Point Status and Control Register,
              fcpr) comme un fichier binaire de quatre octets. Les  operations
              pour le fichier fpcr sont :

              read(2)
                     Si count est plus petit que quatre, read(2) renvoie -1 et
                     positionne errno a EINVAL. Sinon, une  valeur  de  quatre
                     octets  est  placee  dans le tampon de donnees ; c'est la
                     valeur actuelle du registre fpcr.

              write(2)
                     Si count est plus petit que quatre, write(2)  renvoie  -1
                     et positionne errno a EINVAL. Sinon, une valeur de quatre
                     octets est copiee depuis le tampon de donnees, mettant  a
                     jour la valeur du registre fpcr.

       /signal1, /signal2
              Le fichier donne acces aux deux canaux de notification de signal
              d'un SPU. Ce sont  des  fichiers  en  lecture  et  ecriture  qui
              utilisent  des  mots  de  quatre  octets.  Ecrire dans un de ces
              fichiers declenche une interruption sur le SPU. La valeur ecrite
              dans  le fichier de signalisation peut etre lue depuis le SPU au
              travers d'un canal de lecture ou par  l'espace  utilisateur  sur
              l'hote grace au fichier. Les operations possibles sur un fichier
              signal1 ou signal2 ouvert sont :

              read(2)
                     Si count est plus petit que quatre, read(2) renvoie -1 et
                     positionne  errno  a  EINVAL. Sinon, une valeur de quatre
                     octets est placee dans le tampon de  donnees ;  c'est  la
                     valeur  actuelle  du  registre  de notification du signal
                     specifie.

              write(2)
                     Si count est plus petit que quatre, write(2)  renvoie  -1
                     et positionne errno a EINVAL. Sinon, une valeur de quatre
                     octets est copiee depuis le tampon de donnees  et  met  a
                     jour  la  valeur  du  registre  de notification du signal
                     specifie. Le registre de notification du signal sera soit
                     remplace par les donnees fournies en entree ou sera mis a
                     jour par un OU bit a bit  de  l'ancienne  valeur  et  des
                     donnees  fournies  en  entree, en fonction du contenu des
                     fichiers signal1_type ou signal2_type respectivement.

       /signal1_type, /signal2_type
              Ces deux fichiers  changent  le  comportement  des  fichiers  de
              notification  signal1  et  signal2.  Ils  contiennent une chaine
              ASCII numerique qui est lue comme "1" ou "0". Dans le le mode  0
              (remplacement),  le  materiel  remplace  le  contenu du canal du
              signal avec la  donnee  qu'on  y  ecrit.  Dans  le  mode  1  (OU
              logique), le materiel accumule les bits qui y sont ecrits au fur
              et  a  mesure.  Les  operations   possibles   sur   un   fichier
              signal1_type ou signal2_type sont :

              read(2)
                     Quand  le  parametre  count  fourni a l'appel read(2) est
                     plus petit que la longueur necessaire pour la  valeur  du
                     chiffre (plus un caractere de fin de ligne), les lectures
                     suivantes sur le meme descripteur de fichier completeront
                     la  chaine.  Quand  une  chaine  complete  a ete lue, les
                     lectures qui suivent  ne  renvoient  aucun  octet  et  un
                     nouveau descripteur de fichier doit etre ouvert pour lire
                     une nouvelle valeur.

              write(2)
                     Un appel a write(2) sur le fichier fixe le registre a  la
                     valeur  fournie dans la chaine. La chaine est analysee du
                     debut jusqu'au premier caractere non numerique ou jusqu'a
                     la  fin  du  tampon.  Les ecritures suivantes sur le meme
                     descripteur  de  fichier  remplaceront  les   precedentes
                     ecritures.

       /mbox_info, /ibox_info, /wbox_info, /dma_into, /proxydma_info
              Fichiers  en lecture seule qui contiennent l'etat sauvegarde des
              boites a lettres SPU et des files DMA. Cela  permet  de  pouvoir
              consulter  l'etat du SPU, principalement a des fins de debogage.
              Les  fichiers  mbox_info  et  ibox_info  contiennent  chacun  un
              message de 4 octets qui a ete ecrit par le SPU. Si aucun message
              n'a ete ecrit dans ces boites  a  lettres,  le  contenu  de  ces
              fichiers  est  indetermine. Les fichiers mbox_stat, ibox_stat et
              wbox_stat contient le nombre de messages disponibles.

              Le fichier wbox_info contient un tableau de messages de 4 octets
              qui  ont  ete envoyes a le SPU. Sur les machines CBEA actuelles,
              le tableau a une longueur de 4 elements,  ainsi,  on  peut  lire
              jusqu'a  4 * 4 = 16 octets.  Si  une  entree  de file de boite a
              lettres  est   vide,   les   octets   lus   dans   l'emplacement
              correspondant sont indetermines.

              Le fichier dma_info contient le contenu de la file DMA du MFC du
              SPU, represente par la structure suivante :

                  struct spu_dma_info {
                      uint64_t         dma_info_type;
                      uint64_t         dma_info_mask;
                      uint64_t         dma_info_status;
                      uint64_t         dma_info_stall_and_notify;
                      uint64_t         dma_info_atomic_command_status;
                      struct mfc_cq_sr dma_info_command_data[16];
                  };

              Le dernier membre de cette structure de donnees est la file  DMA
              reelle  contenant 16 entrees. La structure mfc_cq_sr est definie
              ainsi :

                  struct mfc_cq_sr {
                      uint64_t mfc_cq_data0_RW;
                      uint64_t mfc_cq_data1_RW;
                      uint64_t mfc_cq_data2_RW;
                      uint64_t mfc_cq_data3_RW;
                  };

              Le fichier proxydma_info contient  des  informations  similaires
              mais decrit la file DMA proxy (c'est-a-dire, les DMA inities par
              des  entites  exterieures  au  SPU).  Le  fichier  a  le  format
              suivant :

                  struct spu_proxydma_info {
                      uint64_t         proxydma_info_type;
                      uint64_t         proxydma_info_mask;
                      uint64_t         proxydma_info_status;
                      struct mfc_cq_sr proxydma_info_command_data[8];
                  };

              L'acces a ces fichiers necessite que le contexte SPU ne soit pas
              ordonnance ; une utilisation frequente  serait  inefficace.  Ces
              fichiers  ne  doivent pas etre utilises dans l'execution normale
              d'un programme.

              Ces fichiers  n'existent  pas  dans  les  contextes  crees  avec
              l'attribut SPU_CREATE_NOSCHED.

       /cntl  Ce   fichier   fournit   un  acces  aux  registres  de  controle
              d'execution et d'etat du SPU sous forme d'une chaine ASCII.  Les
              operations suivantes sont prises en charge :

              read(2)
                     La  lecture  du  fichier  cntl  renverra une chaine ASCCI
                     contenant la valeur hexadecimale du  registre  d'etat  du
                     SPU.

              write(2)
                     L'ecriture  dans  le fichier cntl definira le registre de
                     controle d'execution du contexte du SPU.

       /mfc   Fournit un acces au controleur de flux memoire (MFC) du SPU. Une
              lecture  de  ce fichier renvoie le contenu du registre d'etat de
              balise MFC du SPU et une ecriture dans le fichier initie un  DMA
              du MFC. Les operations suivantes sont prises en charge :

              write(2)
                     L'ecriture  dans  ce  fichier  necessite  d'etre  dans le
                     format d'une commande DMA du MFC defini ainsi :

                         struct mfc_dma_command {
                             int32_t  pad;    /* reserve */
                             uint32_t lsa;    /* adresse de stockage local */
                             uint64_t ea;     /* adresse effective */
                             uint16_t size;   /* taille de transfert */
                             uint16_t tag;    /* drapeau de commande */
                             uint16_t class;  /* identifiant de la classe */
                             uint16_t cmd;    /* opcode de la commande */
                         };

                     Les  ecritures  doivent  avoir  une  taille  d'exactement
                     sizeof(struct  mfc_dma_command) octets.  La commande sera
                     envoyee a  la  file  proxy  MFC  du  SPU  et  le  drapeau
                     enregistre dans le noyau (voir ci-dessous).

              read(2)
                     Lire  le  contenu  du  registre  d'etat du drapeau. Si le
                     fichier est ouvert en mode bloquant  (c'est-a-dire,  sans
                     O_NONBLOCK), la lecture bloquera jusqu'a ce qu'une balise
                     DMA (comme effectue par  une  ecriture  precedente)  soit
                     achevee.  En  mode  non  bloquant,  le registre d'etat du
                     drapeau MFC sera renvoye sans attente.

              poll(2)
                     Appeler poll(2) sur le fichier mfc  bloquera  jusqu'a  ce
                     qu'un  nouveau  DMA  puisse  etre  demarre  (en verifiant
                     POLLOUT) ou jusqu'a ce qu'un DMA demarre precedemment (en
                     verifiant POLLIN) se soit acheve.

                     /mss   Fournit   un   acces   a   la   fonctionnalite  de
                     synchronisation multisource (MSS) MFC. En  effectuant  un
                     mmap(2)  sur  ce fichier, les processus peuvent acceder a
                     la zone MSS du SPU.

                     Les operations suivantes sont gerees :

              mmap(2)
                     La  projection  de  mss  dans  l'espace  d'adressage   du
                     processus  donne  acces  a  la  zone  MSS  du  SPU depuis
                     l'espace d'adressage du processus. Seules les projections
                     MAP_SHARED sont autorisees.

       /psmap Fournit  un  acces  a  l'ensemble  de  la  projection  d'etat de
              problemes du SPU. Les applications peuvent utiliser  cette  zone
              pour  interfacer  le  SPU  plutot que d'ecrire dans les fichiers
              individuels des registres sur le systeme de fichiers spufs.

              Les operations suivantes sont gerees :

              mmap(2)
                     La projection  de  psmap  donne  un  acces  direct  a  un
                     processus  vers  la  zone  d'etat  des  problemes du SPU.
                     Seules les projections MAP_SHARED sont autorisees.

       /phys-id
              Fichier en lecture seule contenant le nombre  de  SPU  physiques
              sur  lesquelles s'executent le contexte SPU. Lorsque le contexte
              n'est pas en cours d'execution, ce fichier  contient  la  chaine
              << -1 >>.

              Le  nombre  de  SPU physiques est fourni sous forme d'une chaine
              ASCII hexadecimale.

       /object-id
              Permet aux applications de stocker (ou recuperer) un idendifiant
              64 bits  dans le contexte. Cet identifiant est utilise plus tard
              par les outils de profilage pour identifier de maniere unique le
              contexte.

              write(2)
                     En   ecrivant  une  valeur  hexadecimale  ASCII  dans  ce
                     fichier, les applications peuvent  definir  l'identifiant
                     d'objet  du  contexte  SPU.  Toute  valeur  precedente de
                     l'identifiant d'objet est ecrasee.

              read(2)
                     La lecture de ce fichier fournit une chaine  hexadecimale
                     ASCII  representant  l'identifiant d'objet de ce contexte
                     SPU.

EXEMPLE

       Entree /etc/fstab
              none      /spu      spufs     gid=spu   0    0

VOIR AUSSI

       close(2),  spu_create(2),   spu_run(2),   capabilities(7),   The   Cell
       Broadband Engine Architecture (CBEA) specification

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                          20 decembre 2007                       SPUFS(7)