tu peux utiliser vmalloc sereinement, l'allocation sera plus rapide, mais l'espace alloué ne sera pas contigue au niveau des adresses physiques, juste au niveau des adresses virtuelles. Ces adresses virtuelles sont "traduites" par la MMU en adresse physique pas forcement contigue. Et ce qui n'est pas bien contigu exploite moins bien les caches, ...
Je suppose que tu vas allouer régulièrement des blocs de grosse taille. Si oui et si tu n'est pas satisfait des performances, tu peux t'orienter vers les caches de slab. Je sais que c'est justement utilisé pour les pilotes USB. Mais c'est une optimisation qui n'est peut etre pas nécessaire.