Serieux problème de perfs avec un mmap - Linux et OS Alternatifs
Marsh Posté le 22-09-2005 à 19:38:41
tu as regardé comment cela se passait dans d'autres drivers ? tu as check v4l et v4l2 ?
Marsh Posté le 22-09-2005 à 20:17:00
Oui j'ai un peu cherché, le problème c'est que je n'ai rien trouvé qui utilise "mem=" dans boot param (c'est souvent considéré comme un mauvais trick)
je vais rechercher dans v4l , on sait jamais
merci pour ta réponse
Marsh Posté le 22-09-2005 à 17:53:39
Bonjour à tous !
Dans le cadre d'un développement de drivers linux pour une carte d'acquisition video, j'ai besoin d'une grande zone mémoire en RAM. Pour ce faire, j'utilise l'horrible trick "mem=" dans les paramètres du boot.
Ensuite, je charge mon driver via insmod, je crée un noeud (via mknod) et, dans un programme, je teste l'accès à une zone mémoire que le driver a obtenu.
Le driver se base sur le code d'Alessandro Rubini (allocator.c). : http://www.ceng.metu.edu.tr/course [...] tor/README
Au niveau du code, l'utilisateur lance le programme, ce dernier effectue un open() puis un mmap().
Le problème est que l'accès à la zone fonctionne mais est horriblement lent (environ 30x + lent que si le buffer était déclaré en static dans le programme utilisateur).
Le code fourni est compilable je pense sans avoir la carte en question vu qu'il n'est nulle part question de cette même carte dans les drivers. Je suppose que les routines de Rubini sont correctes. Il y a donc le code source du dummy driver, les scripts shell que j'ai écrit pour le chargement et une application dummy...
Merci à toute personne pouvant m'aiguiller
http://users.cybernet.be/pyboulanger/dummydriver06.zip