.\" -*- coding: UTF-8 -*- .\" Copyright 2003,2004 Andi Kleen, SuSE Labs. .\" and Copyright 2007 Lee Schermerhorn, Hewlett Packard .\" .\" %%%LICENSE_START(VERBATIM_PROF) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2006-02-03, mtk, substantial wording changes and other improvements .\" 2007-08-27, Lee Schermerhorn .\" more precise specification of behavior. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH get_mempolicy 2 "5 februarie 2023" "Pagini de manual de Linux 6.03" .SH NUME get_mempolicy \- recuperează politica de memorie NUMA pentru un fir de execuție .SH BIBLIOTECA Biblioteca de politici NUMA („Non\-Uniform Memory Access”: acces neuniform la memorie) (\fIlibnuma\fP, \fI\-lnuma\fP) .SH REZUMAT \fB#include \fP .nf .PP \fBlong get_mempolicy(int *\fP\fImode\fP\fB,\fP \fB unsigned long \fP\fInodemask\fP\fB[(.\fP\fImaxnode\fP\fB + ULONG_WIDTH \- 1)\fP \fB/ ULONG_WIDTH],\fP \fB unsigned long \fP\fImaxnode\fP\fB, void *\fP\fIaddr\fP\fB,\fP \fB unsigned long \fP\fIflags\fP\fB);\fP .fi .SH DESCRIERE \fBget_mempolicy\fP() recuperează politica NUMA a firului apelant sau a unei adrese de memorie, în funcție de valoarea lui \fIflags\fP. .PP O mașină NUMA are diferite controloare de memorie cu distanțe diferite față de diferitele CPU\-uri. Politica de memorie definește din ce nod este alocată memoria pentru firul de execuție. .PP Dacă \fIflags\fP este specificat ca fiind 0, atunci sunt returnate informații despre politica implicită a firului apelant (așa cum a fost stabilită de \fBset_mempolicy\fP(2)), în memoriile tampon indicate de \fImode\fP și \fInodemask\fP. Valoarea returnată în aceste argumente poate fi utilizată pentru a readuce politica firului la starea sa din momentul apelului la \fBget_mempolicy\fP() folosind \fBset_mempolicy\fP(2). Atunci când \fIflags\fP este 0, \fIaddr\fP trebuie să fie specificat ca NULL. .PP Dacă \fIflags\fP specifică \fBMPOL_F_MEMS_ALLOWED\fP (disponibil începând cu Linux 2.6.24), argumentul \fImode\fP este ignorat, iar setul de noduri (memorii) pe care firul de execuție are voie să le specifice în apelurile ulterioare către \fBmbind\fP(2) sau \fBset_mempolicy\fP(2) (în absența oricărui indicator \fImode flags\fP) este returnat în \fInodemask\fP. Nu este permisă combinarea \fBMPOL_F_MEMS_ALLOWED\fP cu \fBMPOL_F_ADDR\fP sau \fBMPOL_F_NODE\fP. .PP În cazul în care \fIflags\fP specifică \fBMPOL_F_ADDR\fP, atunci sunt returnate informații despre politica care guvernează adresa de memorie indicată în \fIaddr\fP. Această politică poate fi diferită de politica implicită a firului de execuție dacă \fBmbind\fP(2) sau una dintre funcțiile de ajutor descrise în \fBnuma\fP(3) a fost utilizată pentru a stabili o politică pentru intervalul de memorie care conține \fIaddr\fP. .PP Dacă argumentul \fImode\fP nu este NULL, atunci \fBget_mempolicy\fP() va stoca modul de politică și orice indicatori opționali \fImode flags\fP ai politicii NUMA solicitate în locația indicată de acest argument. Dacă \fInodemask\fP nu este NULL, atunci masca de nod asociată politicii va fi stocată în locația indicată de acest argument. \fImaxnode\fP specifică numărul de ID\-uri de nod care pot fi stocate în \fInodemask\fP, adică ID\-ul maxim de nod plus unu. Valoarea specificată de \fImaxnode\fP este întotdeauna rotunjită la un multiplu de \fIsizeof(unsigned\ long)*8\fP. .PP Dacă \fIflags\fP specifică atât \fBMPOL_F_NODE\fP, cât și \fBMPOL_F_ADDR\fP, \fBget_mempolicy\fP() va returna ID\-ul nodului pe care adresa \fIaddr\fP este alocată în locația indicată de \fImode\fP. În cazul în care nu a fost alocată încă nicio pagină pentru adresa specificată, \fBget_mempolicy\fP() va aloca o pagină ca și cum firul de execuție ar fi efectuat un acces de citire (încărcare) la adresa respectivă și va returna ID\-ul nodului în care a fost alocată pagina respectivă. .PP .\" Note: code returns next interleave node via 'mode' argument -Lee Schermerhorn În cazul în care \fIflags\fP specifică \fBMPOL_F_NODE\fP, dar nu \fBMPOL_F_ADDR\fP, iar politica curentă a firului este \fBMPOL_INTERLEAVE\fP, atunci \fBget_mempolicy\fP() va returna în locația indicată de un argument \fImode\fP non\-NULL, ID\-ul de nod al nodului următor care va fi utilizat pentru intercalarea paginilor interne ale nucleului alocate în numele firului. Aceste alocări includ paginile pentru fișiere alocate în memorie în intervalele de memorie ale procesului, alocate cu ajutorul apelului \fBmmap\fP(2) cu indicatorul \fBMAP_PRIVATE\fP pentru accesări de citire și în intervalele de memorie alocate cu indicatorul \fBMAP_SHARED\fP pentru toate accesările. .PP Alte valori ale fanionului sunt rezervate. .PP Pentru o prezentare generală a politicilor posibile, a se vedea \fBset_mempolicy\fP(2). .SH "VALOAREA RETURNATĂ" În caz de succes, \fBget_mempolicy\fP() returnează 0; în caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEFAULT\fP O parte din tot intervalul de memorie specificat de \fInodemask\fP și \fImaxnode\fP indică în afara spațiului de adrese accesibil. .TP \fBEINVAL\fP Valoarea specificată de \fImaxnode\fP este mai mică decât numărul de ID\-uri de noduri acceptate de sistem. Sau \fIflags\fP a specificat alte valori decât \fBMPOL_F_NODE\fP sau \fBMPOL_F_ADDR\fP; sau \fIflags\fP a specificat \fBMPOL_F_ADDR\fP și \fIaddr\fP este NULL, sau \fIflags\fP nu a specificat \fBMPOL_F_ADDR\fP și \fIaddr\fP nu este NULL. Sau, \fIflags\fP a specificat \fBMPOL_F_NODE\fP, dar nu \fBMPOL_F_ADDR\fP, iar politica curentă a firelor nu este \fBMPOL_INTERLEAVE\fP. Sau, \fIflags\fP a specificat \fBMPOL_F_MEMS_ALLOWED\fP fie cu \fBMPOL_F_ADDR\fP, fie cu \fBMPOL_F_NODE\fP; (și mai există și alte cazuri \fBEINVAL\fP). .SH VERSIUNI Apelul de sistem \fBget_mempolicy\fP() a fost adăugat în Linux 2.6.7. .SH STANDARDE Acest apel de sistem este specific pentru Linux. .SH NOTE Pentru informații privind suportul de bibliotecă, consultați \fBnuma\fP(7). .SH "CONSULTAȚI ȘI" \fBgetcpu\fP(2), \fBmbind\fP(2), \fBmmap\fP(2), \fBset_mempolicy\fP(2), \fBnuma\fP(3), \fBnuma\fP(7), \fBnumactl\fP(8) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .