Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       alloc_hugepages, free_hugepages - Allouer ou libérer des pages immenses

SYNOPSIS

       void *alloc_hugepages(int key, void *addr, size_t len,
                             int prot, int flag);

       int free_hugepages(void *addr);

DESCRIPTION

       Les  appels  système  alloc_hugepages()  et free_hugepages() ont été introduits dans Linux
       2.5.36 et retirés à nouveau dans  le  2.5.54.  Ils  n'existaient  que  sur  i386  et  ia64
       (compilation  avec  l'option  CONFIG_HUGETLB_PAGE).  Dans  Linux 2.4.20, le numéro d'appel
       système existe mais l'appel renvoie toujours ENOSYS.

       Sur un i386, le mécanisme matériel de gestion mémoire connaît des pages ordinaires (4 Kio)
       et  des pages immenses (2 à 4 Mio). De même, l'ia64 connaît des pages immenses de diverses
       tailles. Ces appels système servent à projeter ces pages immenses dans l'espace mémoire du
       processus  ou  à  les  libérer.  Les pages immenses sont verrouillées en mémoire et jamais
       swappées.

       Le paramètre key est un identifiant. Lorsqu'il vaut zéro, les pages sont  privées  et  non
       héritées  par  les  processus descendants. Lorsqu'il est positif, les pages sont partagées
       avec les autres applications utilisant la même key, et héritées par les processus enfants.

       Le paramètre addr de free_hugepages() indique quelle page doit être libérée  —  il  a  été
       renvoyé  lors  de  l'appel  alloc_hugepages(). (La mémoire n'est véritablement libérée que
       lorsque tous ses utilisateurs la relâchent). Le paramètre addr de alloc_hugepages() est un
       désir que le noyau peut suivre ou non. Les adresses doivent être correctement alignées.

       Le  paramètre  len  est  la  taille  du segment désiré. Il doit s'agir d'un multiple de la
       taille d'une page immense.

       Le paramètre prot indique le type de protection du segment. Il s'agit d'une association de
       PROT_READ, PROT_WRITE, PROT_EXEC.

       Le  paramètre  flag  est  ignoré,  sauf  si  key  est  positif.  Dans ce cas, si flag vaut
       IPC_CREAT, alors un nouveau segment de page immense est créé si aucun n'existe avec  cette
       clé. Sinon, l'erreur ENOENT est renvoyé si aucun segment correspondant à la clé n'existe.

VALEUR RENVOYÉE

       S'il  réussit  alloc_hugepages()  renvoie l'adresse du segment alloué, et free_hugepages()
       renvoie zéro. En cas d'erreur,  ils  renvoient  -1  et  remplissent  errno  avec  le  code
       d'erreur.

ERREURS

       ENOSYS L'appel système n'est pas supporté par ce noyau.

FICHIERS

       /proc/sys/vm/nr_hugepages
              Nombre de pages immenses configurées. Peut être lu ou écrit.

       /proc/meminfo
              Indique  le  nombre  de pages immenses configurées, et leurs tailles dans les trois
              variables HugePages_Total, HugePages_Free, Hugepagesize.

CONFORMITÉ

       Cet appel système est spécifique à Linux sur  processeurs  Intel,  et  ne  doit  pas  être
       employé dans des programmes destinés à être portables.

NOTES

       Ces  appels  système  ont  disparu ;  ils  n'existaient  qu'entre  Linux 2.5.36 et 2.5.54.
       Maintenant, le système de fichiers hugetblfs peut être employé à leur  place.  La  mémoire
       correspondant  aux pages immenses (si le processeur les supporte) peut être obtenue par un
       mmap(2) des fichiers de ce système de fichiers virtuel.

       Le nombre maximal de pages immenses peut être indiqué en utilisant  l'argument  hugepages=
       au démarrage.

COLOPHON

       Cette  page  fait partie de la publication 5.10 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à debian-l10n-french@lists.debian.org ⟨⟩.