Linux
manpages-fr
French version of the manual pages about using GNU/Linux
man-pages-fr
French version of the Linux man-pages
manpages
Manual pages about using a GNU/Linux system
man-pages
Linux kernel and C library user-space interface documentation
NOM
spufs - Système de fichiers SPU
DESCRIPTION
Le système de fichiers SPU est utilisé sur les machines PowerPC qui utilisent l’architecture Cell Broadband Engine Architecture pour accéder aux SPU (« Synergistic Processor Units »).
Le système de fichiers fournit un espace de noms similaire à la mémoire partagée ou aux queues de messages POSIX. Les utilisateurs qui ont la permission d’écrire sur le système de fichiers peuvent utiliser spu_create(2) pour établir des contextes SPU dans le répertoire racine du spufs.
Chaque contexte SPU est représenté par un répertoire contenant un jeu de fichiers prédéfinis. Ces fichiers peuvent être utilisés pour manipuler l’état 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> | |
Définit l’utilisateur propriétaire du point de montage ; 0 par défaut (root). | |
gid=<gid> | |
Définit le groupe propriétaire du point de montage ; 0 par défaut (root). | |
mode=<mode> | |
Définir le mode du répertoire de plus haut niveau du spufs sous la forme d’une chaîne de valeur octale. La valeur par défaut est 0775. |
Fichiers
Les fichiers du spufs se comportent majoritairement de façon standard pour les appels système comme read(2) ou write(2), mais ne gèrent souvent qu’une fraction des opérations permises par les systèmes de fichiers normaux. Cette liste détaille les opérations gérées et les dérogations par rapport aux comportements standards qui sont décrits dans les différentes pages de manuel.
Tous les fichiers qui gèrent l’opération read(2) gèrent également readv(2) et tous les fichiers qui gèrent l’opération write(2) gèrent aussi writev(2). Tous les fichiers gèrent les familles d’opérations access(2) stat(2), mais pour cette dernière famille, les seuls champs de la structure stat renvoyée qui contiennent des informations fiables sont st_mode, st_nlink, st_uid et st_gid.
Tous les fichiers gèrent les opérations chmod(2)/fchmod(2) et chown(2)/fchown(2), mais ne permettront pas des autorisations d’accès qui contredisent les opérations possibles pour un fichier (par exemple, l’accès en lecture pour un fichier wbox).
Le jeux actuel de fichiers est :
/capabilities | |||||||||||||||||
Contient une chaîne représentant les capacités, séparées par des virgules, de ce contexte SPU. Les capacités possibles sont :
|
|||||||||||||||||
/mem | Le contenu de la mémoire de stockage locale du SPU. On peut y accéder comme à un fichier de mémoire partagé standard et il contient à la fois le code et les données de l’espace d’adressage du SPU. Les opérations possibles sur un fichier mem ouvert sont :
|
||||||||||||||||
/regs | Contient la sauvegarde des registres à vocation générale 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 à vocation générale à des fins de débogage.
La lecture ou l’écriture dans ce fichier nécessite que le contexte ne soit pas ordonnancé, aussi, l’utilisation de ce fichier n’est pas recommandé lors de l’exécution normale d’un programme.
Le fichier regs n’existe pas pour les contextes créés avec l’attribut SPU_CREATE_NOSCHED.
|
||||||||||||||||
/mbox | La première boîte aux lettres pour la communication entre SPU et CPU. Ce fichier est en lecture seule et peut être lu par unités de 4 octets. Le fichier peut uniquement être utilisé en mode non bloquant - même poll(2) ne peut pas être utuilisé pour se bloquer sur ce fichier. La seule opération possible sur un fichier mbox ouvert est :
|
||||||||||||||||
/ibox | La deuxième boîte aux lettres pour la communication entre SPU et CPU. Ce fichier est similaire au premier fichier de boîte aux lettres, mais peut être lu en mode bloquant, ainsi appeler read(2) sur un fichier ibox ouvert bloquera tant que le SPU n’a pas écrit dans son canal boîte à lettres (à moins que le fichier n’ait été ouvert avec O_NONBLOCK, voir ci-dessous). Également, poll(2) et des appels système similaires peuvent être utilisés pour surveiller la présence de données dans la boîte à lettres.
Les opérations possibles sur un fichier ibox ouvert sont :
|
||||||||||||||||
/wbox | La boîte aux lettres pour la communication entre CPU et SPU. Elle est en écriture seulement et on peut y écrire des données de 32 bits. Si la boîte aux lettres est pleine, write(2) bloque et poll(2) peut être utilisé pour bloquer jusqu’à ce qu’il soit possible d’écrire dans la boîte aux lettres. Les opérations possibles sur un fichier wbox ouvert sont :
|
||||||||||||||||
/mbox_stat, /ibox_stat, /wbox_stat | |||||||||||||||||
Ce sont des fichiers en lecture seule qui contiennent la taille des différentes queues des boîtes aux lettres, c’est-à-dire le nombre de mots qui peuvent être lus dans mbox ou ibox ou peuvent être écrits dans wbox sans bloquer. Ces fichiers ne peuvent être lus que par blocs de quatre octets et renvoient un nombre entier avec un codage grand boutiste (« big endian ». La seule opération possible sur un fichier *box_stat ouvert est :
|
|||||||||||||||||
/npc, /decr, /decr_status, /spu_tag_mask, /event_mask, /event_status, /srr0, /lslr | |||||||||||||||||
Les registres internes du SPU. Ces fichiers contiennent une chaîne de caractère ASCII représentant la valeur hexadécimale du registre indiqué. Lire et écrire dans ces fichiers (hormis npc, voir ci-dessous) nécessite que le contexte du SPU ne soit pas ordonnancé, aussi, les accès fréquents à ces fichiers ne sont pas recommandés lors de l’exécution normale d’un programme. | |||||||||||||||||
Le contenu des fichiers est :
|
|||||||||||||||||
Les opérations possibles sur ces fichiers sont :
|
|||||||||||||||||
/fpcr | Ce fichier donne accès au registre d’état et de contrôle pour la virgule flottante (Floating Point Status and Control Register, fcpr) comme un fichier binaire de quatre octets. Les opérations pour le fichier fpcr sont :
|
||||||||||||||||
/signal1, /signal2 | |||||||||||||||||
Le fichier donne accès aux deux canaux de notification de signal d’un SPU. Ce sont des fichiers en lecture et écriture qui utilisent des mots de quatre octets. Écrire dans un de ces fichiers déclenche une interruption sur le SPU. La valeur écrite dans le fichier de signalisation peut être lue depuis le SPU au travers d’un canal de lecture ou par l’espace utilisateur sur l’hôte grâce au fichier. Les opérations possibles sur un fichier signal1 ou signal2 ouvert sont :
|
|||||||||||||||||
/signal1_type, /signal2_type | |||||||||||||||||
Ces deux fichiers changent le comportement des fichiers de notification signal1 et signal2. Ils contiennent une chaîne ASCII numérique qui est lue comme "1" ou "0". Dans le mode 0 (remplacement), le matériel remplace le contenu du canal du signal avec la donnée qu’on y écrit. Dans le mode 1 (OU logique), le matériel accumule les bits qui y sont écrits au fur et à mesure. Les opérations possibles sur un fichier signal1_type ou signal2_type sont :
|
|||||||||||||||||
/mbox_info, /ibox_info, /wbox_info, /dma_into, /proxydma_info | |||||||||||||||||
Fichiers en lecture seule qui contiennent l’état sauvegardé des boîtes à lettres SPU et des files DMA. Cela permet de pouvoir consulter l’état du SPU, principalement à des fins de débogage. Les fichiers mbox_info et ibox_info contiennent chacun un message de 4 octets qui a été écrit par le SPU. Si aucun message n’a été écrit dans ces boîtes à lettres, le contenu de ces fichiers est indéterminé. 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 été envoyés à le SPU. Sur les machines CBEA actuelles, le tableau a une longueur de 4 éléments, ainsi, on peut lire jusqu’à 4 * 4 = 16 octets. Si une entrée de file de boîte à lettres est vide, les octets lus dans l’emplacement correspondant sont indéterminés.
Le fichier dma_info contient le contenu de la file DMA du MFC du SPU, représenté 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 données est la file DMA réelle contenant 16 entrées. La structure mfc_cq_sr est définie 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 décrit la file DMA proxy (c’est-à-dire, les DMA initiés par des entités extérieures 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’accès à ces fichiers nécessite que le contexte SPU ne soit pas ordonnancé ; une utilisation fréquente serait inefficace. Ces fichiers ne doivent pas être utilisés dans l’exécution normale d’un programme.
Ces fichiers n’existent pas dans les contextes créés avec l’attribut SPU_CREATE_NOSCHED.
|
|||||||||||||||||
/cntl | Ce fichier fournit un accès aux registres de contrôle d’exécution et d’état du SPU sous forme d’une chaîne ASCII. Les opérations suivantes sont prises en charge :
|
||||||||||||||||
/mfc | Fournit un accès au contrôleur de flux mémoire (MFC) du SPU. Une lecture de ce fichier renvoie le contenu du registre d’état de balise MFC du SPU et une écriture dans le fichier initie un DMA du MFC. Les opérations suivantes sont prises en charge :
|
||||||||||||||||
/psmap | Fournit un accès à l’ensemble de la projection d’état de problèmes du SPU. Les applications peuvent utiliser cette zone pour interfacer le SPU plutôt que d’écrire dans les fichiers individuels des registres sur le système de fichiers spufs.
Les opérations suivantes sont gérées :
|
||||||||||||||||
/phys-id | Fichier en lecture seule contenant le nombre de SPU physiques sur lesquelles s’exécutent le contexte SPU. Lorsque le contexte n’est pas en cours d’exécution, ce fichier contient la chaîne « -1 ».
Le nombre de SPU physiques est fourni sous forme d’une chaîne ASCII hexadécimale.
|
||||||||||||||||
/object-id | |||||||||||||||||
Permet aux applications de stocker (ou récupérer) un idendifiant 64 bits dans le contexte. Cet identifiant est utilisé plus tard par les outils de profilage pour identifier de manière unique le contexte.
|
EXEMPLE
Entrée /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.70 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 à <perkamon-fr>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».