alloc_hugepages(2)

NOMBRE
alloc_hugepages, free_hugepages - asigna o libera páginas gigantes

SINOPSIS
void *syscall(size_t size;
              SYS_alloc_hugepages, int key, void addr[size], size_t size,
              int prot, int flag);
int syscall(SYS_free_hugepages, void *addr);

Nota: glibc no proporciona wrappers para estas llamadas al sistema, lo que requiere el uso de syscall(2).

DESCRIPCIÓN
Las llamadas al sistema alloc_hugepages() y free_hugepages() fueron introducidas en Linux 2.5.36 y eliminadas de nuevo en la versión 2.5.54. Existían sólo para arquitecturas i386 e ia64 (cuando se compilaba con la opción CONFIG_HUGETLB_PAGE). En Linux 2.4.20 existen los números de las llamadas al sistemas, pero las llamadas devuelven ENOSYS.

En la arquitectura i386 el hardware de gestión de la memoria maneja páginas ordinarias (4 KiB) y páginas grandes (2 o 4 MiB). De manera similar, la arquitectura ia64 maneja páginas grandes de distintos tamaños. Estas llamadas al sistema sirven para ubicar páginas de gran tamaño en la memoria del proceso o para liberarlas. Las páginas grandes están fijas en memoria, y no son intercambiadas (swapped).

El argumento key es un identificador. Cuando es cero las páginas son privadas, y no son heredadas por los hijos. Cuando es positivo las páginas son compartidas con otras aplicaciones usando el mismo identificador key, y heredadas por los procesos hijo.

El argumento addr de free_hugepages() indica qué página se está liberando: era el valor de retorno de una llamada a alloc_hugepages(). (La memoria se libera cuando todos los usuarios la han liberado). El argumento addr de alloc_hugepages() es una pista que el núcleo puede o no seguir. Las direcciones deben estar correctamente alineadas.

El argumento size es el tamaño del segmento requerido. Debe ser un múltiplo del tamaño de la página gigante.

El parámetro prot especifica la protección de memoria del segmento. Puede ser PROT_READ, PROT_WRITE o bien PROT_EXEC.

El argumento flag se ignora, salvo que key sea positivo, entonces si flag es IPC_CREAT, se crea un nuevo segmento de página gigante cuando no existía ninguno con la clave dada. Si esta bandera no está activada, se retornará ENOENT cuando no exista ningún segmento con la clave dada.

VALOR DEVUELTO
En caso de éxito, alloc_hugepages() devuelve la dirección virtual asignada, y free_hugepages() devuelve cero. En caso de error, se devuelve -1, y se define errno para indicar el tipo de error.

ERRORES

ENOSYS
    La llamada al sistema no está soportada por este núcleo.

ARCHIVOS

/proc/sys/vm/nr_hugepages
    Número de páginas hugetlb configuradas. Puede ser leído y escrito.

/proc/meminfo
    Proporciona información del número de páginas hugetlb configuradas y de su tamaño en las tres variables HugePages_Total, HugePages_Free, Hugepagesize.

ESTÁNDARES
Linux en procesadores Intel.

HISTORIAL
Estas llamadas al sistema han desaparecido; solo existieron en Linux 2.5.36 a Linux 2.5.54.

NOTAS
Ahora se puede usar el sistema de archivos hugetlbfs. La memoria respaldada por páginas gifantes (si la CPU las admite) se obtiene usando mmap(2) para mapear archivos en este sistema de archivos virtual.

El número máximo de páginas grandes puede especificarse usando el parámetro hugepages= en el arranque.

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.