PR_SVE_SET_VL(2const)

NUME
PR_SVE_SET_VL - stabilește lungimea vectorului SVE al firului

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <linux/prctl.h>  /* Definirea constantelor PR_* */
#include <sys/prctl.h>

int prctl(PR_SVE_SET_VL, unsigned long val);

DESCRIERE
Configurează lungimea vectorului SVE al firului, astfel cum este specificată de val.

Biții din val corespunzători lui PR_SVE_VL_LEN_MASK trebuie definiți la lungimea dorită a vectorului în octeți. Aceasta este interpretată ca o limită superioară: nucleul va selecta cea mai mare lungime de vector disponibilă care nu depășește valoarea specificată. În special, specificarea SVE_VL_MAX (definit în <asm/sigcontext.h>) pentru biții PR_SVE_VL_LEN_MASK solicită lungimea maximă acceptată a vectorului.

În plus, ceilalți biți ai val trebuie să fie definiți la una dintre următoarele combinații de fanioane:

0L  Efectuează modificarea imediat. La următorul execve(2) din fir, lungimea vectorului va fi readusă la valoarea configurată în /proc/sys/abi/sve_default_vector_length.

PR_SVE_VL_INHERIT
    Efectuează modificarea imediat. Apelurile ulterioare execve(2) vor păstra noua lungime a vectorului.

PR_SVE_SET_VL_ONEXEC
    Amână modificarea, astfel încât aceasta să fie efectuată la următorul apel execve(2) din fir. Apelurile ulterioare execve(2) vor readuce lungimea vectorului la valoarea configurată în /proc/sys/abi/sve_default_vector_length.

PR_SVE_SET_VL_ONEXEC | PR_SVE_VL_INHERIT
    Amână modificarea, astfel încât aceasta să fie efectuată la următorul apel execve(2) din fir. Apelurile ulterioare execve(2) vor păstra noua lungime a vectorului.

În toate cazurile, orice modificare amânată în așteptare este anulată.

În caz de succes, se returnează o valoare nenegativă care descrie configurația selectată. Dacă PR_SVE_SET_VL_ONEXEC a fost inclus în val, atunci configurația descrisă de valoarea returnată va intra în vigoare la următorul apel execve(2). În caz contrar, configurația este deja în vigoare atunci când apelul PR_SVE_SET_VL returnează. În ambele cazuri, valoarea este codificată în același mod ca și valoarea de returnare a apelului PR_SVE_GET_VL. Rețineți că nu există niciun fanion explicit în valoarea de returnare corespunzătoare apelului PR_SVE_SET_VL_ONEXEC.

Configurația (inclusiv orice modificare amânată în așteptare) este moștenită de fork(2) și clone(2).

VALOAREA RETURNATĂ
În caz de succes, PR_SVE_SET_VL returnează valoarea nenegativă descrisă mai sus. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EINVAL
    SVE nu este disponibil pe această platformă.

EINVAL
    Valoarea din biții din val corespunzătoare lui PR_SVE_VL_LEN_MASK este în afara intervalului [SVE_VL_MIN, SVE_VL_MAX] sau nu este un multiplu de 16.

EINVAL
    Ceilalți biți ai val nu sunt valabili sau nu sunt acceptați.

FIȘIERE

/proc/sys/abi/sve_default_vector_length

STANDARDE
Linux. Doar arm64.

ISTORIC
Linux 4.15 (arm64).

AVERTISMENTE
Deoarece compilatorul sau mediul de execuție poate utiliza SVE, utilizarea acestui apel fără fanionul PR_SVE_SET_VL_ONEXEC poate bloca procesul apelant. Condițiile de utilizare în siguranță sunt complexe și depind de sistem. Nu-l utilizați decât dacă știți cu adevărat ce faceți.

CONSULTAȚI ȘI
prctl(2), PR_SVE_GET_VL(2const)

Pentru mai multe informații, consultați fișierul sursă al nucleului Documentation/arm64/sve.rst (sau Documentation/arm64/sve.txt înainte de Linux 5.3).

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.