NOMBRE

alloc_hugepages, free_hugepages - asigna o libera páginas de gran tamaño

SINOPSIS

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: glibc provides no wrappers for these system calls, necessitating the use of 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.
The addr argument of free_hugepages() tells which page is being freed: it was the return value of a call to alloc_hugepages(). (The memory is first actually freed when all users have released it.) The addr argument of alloc_hugepages() is a hint, that the kernel may or may not follow. Addresses must be properly aligned.
El parámetro len es la longitud 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.
The flag argument is ignored, unless key is positive. In that case, if flag is IPC_CREAT, then a new huge page segment is created when none with the given key existed. If this flag is not set, then ENOENT is returned when no segment with the given key exists.

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

These extinct system calls were specific to Linux on Intel processors.

NOTAS

These system calls are gone; they existed only in Linux 2.5.36 through to Linux 2.5.54. Now the hugetlbfs filesystem can be used instead. Memory backed by huge pages (if the CPU supports them) is obtained by using mmap(2) to map files in this virtual filesystem.
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 <[email protected]> y Marcos Fouces <[email protected]>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 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 [email protected]

Recommended readings

Pages related to alloc_hugepages you should read also:

Questions & Answers

Helpful answers and articles about alloc_hugepages you may found on these sites:
Stack Overflow Server Fault Super User Unix & Linux Ask Ubuntu Network Engineering DevOps Raspberry Pi Webmasters Google Search