Loading

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);

       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  manipule  des
       pages  ordinaires  (4 Ko)  et  des  pages immenses (2 à 4 Mo). 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 énorme  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  énormes  configurées.  Peut
       être lu ou écrit.

       /proc/meminfo  Indique le nombre de pages énormes 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 énormes (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  énormes  peut  être  indiqué  en  utilisant
       l’argument hugepages= au démarrage.

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».