Scroll to navigation

spu_create(2) System Calls Manual spu_create(2)

NAVN

spu_create - opret en ny spu-kontekst

BIBLIOTEK

Standard C library (libc-lc)

SYNOPSIS

#include <sys/spu.h>          /* Definition af SPU_*-konstanter */
#include <sys/syscall.h>      /* Definition af SYS_*-konstanter */
#include <unistd.h>
int syscall(SYS_spu_create, const char *path, unsigned int flag,
            mode_t mode, int neighbor_fd);

Bemærk: glibc tilbyder intet omslag for spu_create(), hvilket nødvendiggør brugen af syscall(2).

BESKRIVELSE

Systemkaldet spu_create() bruges på PowerPC-maskiner, der implementerer Cell Broadband Engine Architecture for at tilgå Synergistic Processor Units (SPU'er. Opretter en ny logisk kontekst for en SPU i sti og returnerer en fildeskriptor associeret med den. sti skal referere til en ikkeeksisterende mappe på monteringspunktet for SPU-filsystemet (spufs). Hvis spu_create() er succesfuld så oprettes en mappe på sti og udfyldes med filerne beskrevet i spufs(7).

Når en kontekst oprettes kan den returnerede fildeskriptor kun sendes til spu_run(2), brugt som argumentet dirfd til *at-systemkaldsfamilien (f.eks. openat(2)), eller lukket; andre operationer er ikke defineret. En logisk SPU-kontekst ødelægges (sammen med alle filer oprettet i kontekstens sti-mappe) når først den sidste reference til konteksten er væk; dette sker normalt når fildeskriptoren returneret af spu_create() lukkes.

Argumentet mode (minus bit angivet i processens umask(2)) angiver rettighederne brugt til at oprette den nye mappe i spufs. Se stat(2) for en fuld liste over muligt mode-værdier.

neighbor_fd bruges kun når flaget SPU_CREATE_AFFINITY_SPU er angivet; se nedenfor.

Argumentet flag kan være nul eller enhver bitwise OR-ed kombination af de følgende konstanter:

Frem for at bruge signaler til at rapportere DMA-fejl, så brug event-argumentet for spu_run(2).
Opret en SPU-gang i stedet for en kontekst. (En gang er en gruppe af SPU-kontekster der er funktionelt relateret til hinanden og der deler fælles planlægningsparametre—prioritet og politik. I fremtiden kan gang-planlægning måske blive implementeret som medførende at gruppen skiftes ind og ud som en enkelt enhed).
En ny mappe vil blive oprettet på placeringen angivet af sti-argumentet. Denne gang kan bruges til at indeholde andet SPU-indhold, ved at tilbyde et stinavn der er i gang-mappen for yderligere kald til spu_create().
Opret en kontekst der ikke er påvirket af SPU-planlæggeren. Når konteksten er afviklet, så vil den ikke blive planlagt, indtil den er ødelagt af den skabende proces.
Da konteksten ikke kan fjernes fra SPU'en, så bliver nogen funktionalitet deaktiveret for SPU_CREATE_NOSCHED-konteksterne. Kun et undersæt af filerne vil være tilgængelige i denne kontekstmappe i spufs. Derudover kan SPU_CREATE_NOSCHED-kontekster ikke dumpe en kernefil, når den går ned.
Oprettelse af SPU_CREATE_NOSCHED-kontekster kræver CAP_SYS_NICE-funktionaliteten.
Opret en isoleret SPU-kontekst. Isolerede kontekster er beskyttet fra nogle PPE-operationer (PowerPC Processing Element), såsom adgang til SPU'ets lokale lager og NPC-registeret.
Opretttelse af SPU_CREATE_ISOLATE-kontekster kræver også flaget SPU_CREATE_NOSCHED.
Opret en kontekst med affinitet til en anden SPU-kontekst. Denne affinitet-information bruges i SPU-planlægningsalgoritmen. Brug af dette flag kræver at en fildeskriptor, der refererer til den anden SPU-kontekst sendes til argumentet neighbor_fd.
Opret en kontekst med affinitet til systemhukommelsen. Denne affinitet-information bruges i SPU-planlægningsalgoritmen.

RETURVÆRDI

Ved succes returnerer spu_create() en ny fildeskriptor. Ved fejl returneres -1 og errno angives for at indikere fejlen.

FEJL

Den nuværende bruger har ikke skriveadgang til monteringspunktet for spufs(7).
En SPU-kontekst findes allerede på det angivne stinavn.
sti er ikke en gyldig strengpeger i den kaldende proces' adressserum.
sti er ikke en mappe i monteringspunktet spufs(7), eller ugyldige flag er blevet angivet.
For mange symbolske henvisninger blev fundet under opslaget af sti.
Begrænsningen per proces for antallet af åbne fildeskriptorer er blevet nået.
sti er for lang.
Systemets begrænsning på det samlede antal åbne filer er nået.
Der blev anmodt om en isoleret kontekst, mne udstyret understøtter ikke SPU-isolering.
En del af sti kunne ikke slås op.
Kernen kunne ikke allokere alle de krævede ressourcer.
Der er ikke nok SPU-ressourcer tilgængelige til at oprette en ny kontekst eller den brugerspecifikke begrænsning for antallet af SPU-kontekster er blevet nået.
Funktionaliteten er ikke tilbudt af det nuværende system, da hverken udstyret tilbyder SPU'er eller spufs-modulet er indlæst.
En del af sti er ikke en mappe.
Flaget SPU_CREATE_NOSCHED er angivet, men brugeren har ikke CAP_SYS_NICE-funktionaliteten.

FILER

sti skal pege på en placering under monteringspunktet for spufs. Efter konventionen bliver den monteret i /spu.

STANDARDER

Linux på PowerPC.

HISTORIK

Linux 2.6.16.

Før tilføjelsen af flaget SPU_CREATE_AFFINITY_SPU i Linux 2.6.23 brugte systemkaldet spu_create() kun tre tre argumenter (dvs. der var ikke et neighbor_fd-argument).

NOTER

spu_create() er lavet til brug fra biblioteker, der implementerer en mere abstrakt grænseflade til SPU'er, ikke til brug fra normale programmer. Se http://www.bsc.es/projects/deepcomputing/linuxoncell/ for anbefalede biblioteker.

EKSEMPLER

Se spu_run(2) for et eksempel på brugen af spu_create()

SE OGSÅ

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

OVERSÆTTELSE

Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>

Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.

Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.

8. februar 2026 Linux man-pages (ej udgivet)