alloc_hugepages(2) System Calls Manual alloc_hugepages(2)
NOM
alloc_hugepages, free_hugepages - Allouer ou liberer des pages immenses
SYNOPSIS
void *syscall(SYS_alloc_hugepages, int key, void addr[.len], size_t len,
int prot, int flag);
int syscall(SYS_free_hugepages, void *addr);
Note : la glibc ne fournit pas de fonction autour de cet appel systeme,
l'utilisation de syscall(2) est requise.
DESCRIPTION
Les appels systeme alloc_hugepages() et free_hugepages() ont ete
introduits dans Linux 2.5.36 et retires a nouveau dans Linux 2.5.54.
Ils n'existaient que sur i386 et ia64 (compilation avec l'option
CONFIG_HUGETLB_PAGE). Dans Linux 2.4.20, le numero d'appel systeme
existe mais l'appel renvoie toujours ENOSYS.
Sur un i386, le mecanisme materiel de gestion memoire connait des pages
ordinaires (4 Kio) et des pages immenses (2 a 4 Mio). De meme, l'ia64
connait des pages immenses de diverses tailles. Ces appels systeme
servent a projeter ces pages immenses dans l'espace memoire du
processus ou a les liberer. Les pages immenses sont verrouillees en
memoire et jamais swappees.
Le parametre key est un identifiant. Lorsqu'il vaut zero, les pages
sont privees et non heritees par les processus descendants. Lorsqu'il
est positif, les pages sont partagees avec les autres applications
utilisant la meme key, et heritees par les processus enfants.
Le parametre addr de free_hugepages() indique quelle page doit etre
liberee -- il a ete renvoye lors de l'appel alloc_hugepages(). (La
memoire n'est veritablement liberee que lorsque tous ses utilisateurs
la relachent). Le parametre addr de alloc_hugepages() est un desir que
le noyau peut suivre ou non. Les adresses doivent etre correctement
alignees.
Le parametre len est la taille du segment desire. Il doit s'agir d'un
multiple de la taille d'une page immense.
Le parametre prot indique le type de protection du segment. Il s'agit
d'une association de PROT_READ, PROT_WRITE, PROT_EXEC.
Le parametre flag est ignore, sauf si key est positif. Dans ce cas, si
flag vaut IPC_CREAT, alors un nouveau segment de page immense est cree
si aucun n'existe avec cette cle. Sinon, l'erreur ENOENT est renvoye si
aucun segment correspondant a la cle n'existe.
VALEUR RENVOYEE
S'il reussit alloc_hugepages() renvoie l'adresse virtuelle allouee et
free_hugepages() renvoie zero. En cas d'erreur, ils renvoient -1 et
errno est positionne pour indiquer l'erreur.
ERREURS
ENOSYS L'appel systeme n'est pas supporte par ce noyau.
FICHIERS
/proc/sys/vm/nr_hugepages
Nombre de pages immenses configurees. Peut etre lu ou ecrit.
/proc/meminfo
Indique le nombre de pages immenses configurees, et leurs
tailles dans les trois variables HugePages_Total,
HugePages_Free, Hugepagesize.
STANDARDS
Linux sur les processeurs Intel
HISTORIQUE
Ces appels systeme ont disparu ; ils n'existaient qu'entre Linux 2.5.36
et 2.5.54.
NOTES
Maintenant, le systeme de fichiers hugetblfs peut etre employe a leur
place. La memoire correspondant aux pages immenses (si le processeur
les supporte) peut etre obtenue par un mmap(2) des fichiers de ce
systeme de fichiers virtuel.
Le nombre maximal de pages immenses peut etre indique en utilisant
l'argument hugepages= au demarrage.
TRADUCTION
La traduction francaise de cette page de manuel a ete creee par
Christophe Blaess , Stephan Rafin
, Thierry Vignaud ,
Francois Micaux, Alain Portal , Jean-Philippe
Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas
Huriaux , Nicolas Francois
, Florentin Duneau
, Simon Paillard , Denis Barbier , David Prevot
et Jean-Philippe MENGUAL
Cette traduction est une documentation libre ; veuillez vous reporter a
la GNU General Public License version 3
concernant les conditions
de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE.
Si vous decouvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message a .
Pages du manuel de Linux 6.06 31 octobre 2023 alloc_hugepages(2)