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)