Linux |
CentOS 5.3 |
|
vmalloc(9) |
vmalloc − allouer de grandes zones de mémoire |
#include <linux/vmalloc.h> void * vmalloc (size_t taille ); |
La fonction vmalloc alloue une zone (virtuellement mais non physiquement contiguë) de mémoire. Le paramètre taille est le nombre d’octets à allouer. |
En cas de succès, vmalloc retourne un pointeur sur la zone de mémoire allouée. En cas d’erreur, NULL est retourné à la place. |
Contrairement à kmalloc (9), vmalloc peut allouer des zones de données supérieures à 128ko. Cependant, les zones ainsi allouée, si elles sont linéaires Telles que vues par le noyau (plus exactement par le CPU), elles ne le sont que tant que l’on s’intéresse aux adresses virtuelles. La zone mémoire physiquement allouée peut être discontigue, l’unité de gestion de la mémoire du CPU (MMU : Memory Managment Unit) s’occupant de la translation. Cela peut poser des problèmes de performances vis-à -vis du cache. Et surtout, une telle zone ne conviendra pas à un périphérique qui demande l’adresse d’un tampon en mémoire. Enfin, la taille de la zone allouée est arrondie au nombre de pages immédiatement supérieur (ie, modulo 4ko sur ix86, 8ko sur alpha, ...) |
kmalloc(9) vfree(9) |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999-2000 |
vmalloc(9) |