Allocation de mémoire lors du démarrage de Linux?

J’ai essayé de rechercher ce sujet sur Google et ce site, mais je ne trouve pas de réponse appropriée.

J’essaie d’allouer un gros bloc continu de mémoire (quelques Mo) à une adresse physique définie pendant le processus de démarrage de Linux. Mais je ne sais toujours pas où je devrais placer ma fonction “alloc_bootmem”. Je suis sous Linux sur un processeur ARM.

  1. Avant tout, il existe un moyen de créer un pilote contenant un appel à “alloc_bootmem”, puis de le comstackr directement dans le kernel.

  2. Une autre méthode consiste à append “alloc_bootmem” quelque part dans les sources du kernel Linux.

  3. La dernière méthode que je pense existe est de créer un fichier de parameters comme boot.rc? (Pas sûr) pour que lors du démarrage Linux réserve la mémoire que je veux allouer.

S’il y a une manière claire ou un lien vers une réponse à cette question, j’apprécierais vraiment l’aide de chacun. La question de base est: “Où dois-je appeler” alloc_bootmem “pour qu’il fonctionne pendant le démarrage?”

Merci Shahril

Jetez un oeil à: http://lwn.net/Kernel/LDD3/ chapitre 8, il explique l’allocation de mémoire pour les premières étapes de démarrage.

Vous trouverez plus d’informations sur le démarrage de l’allocation de mémoire ici:

https://www.kernel.org/doc/gorman/html/understand/understand022.html

Cette fonctionnalité est utilisée pour allouer de gros blocs de mémoire au démarrage du système et utilise la mémoire physique plutôt que virtuelle. Après que la MMU soit opérationnelle, il n’y a aucun moyen possible d’accéder à la mémoire AFAIK

Si vous recherchez une allocation de mémoire continue importante, vous devez probablement utiliser un autre allocateur:

http://lwn.net/Articles/396702/