bonjour,
je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un
process utilisateur et un module pilote PCI.
j'ai vu qu'on peut le faire soit par mmap soit par shmem ,
quel est la meilleur solution en terme de performance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DINH Viêt Hoà
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
une fois la zone mémoire initialisée (avec mmap et shmem), les mécanismes sous-jacent sont les mêmes donc, les performances très proches (voire identiques). mmap() est cependant la solution la plus propre et la plus hype.
-- DINH V. Hoa,
"tu as bientot 15 ans, faut que tu commences à être autonome" -- jul
bonjour,
je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un
process utilisateur et un module pilote PCI.
j'ai vu qu'on peut le faire soit par mmap soit par shmem ,
quel est la meilleur solution en terme de performance.
une fois la zone mémoire initialisée (avec mmap et shmem), les
mécanismes sous-jacent sont les mêmes donc, les performances très
proches (voire identiques).
mmap() est cependant la solution la plus propre et la plus hype.
--
DINH V. Hoa,
"tu as bientot 15 ans, faut que tu commences à être autonome" -- jul
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
une fois la zone mémoire initialisée (avec mmap et shmem), les mécanismes sous-jacent sont les mêmes donc, les performances très proches (voire identiques). mmap() est cependant la solution la plus propre et la plus hype.
-- DINH V. Hoa,
"tu as bientot 15 ans, faut que tu commences à être autonome" -- jul
l'indien
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix. Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour,
je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un
process utilisateur et un module pilote PCI.
j'ai vu qu'on peut le faire soit par mmap soit par shmem ,
quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que
le device qui y accède implémente les primitives mmap et munmap sur
cette zone. C'est la seule approche valide.
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix. Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.
Salut
Oui c'est exactement ca . je vois bien comment faire le vmalloc dans le module , mais comment récupérer l' adresse de cette zone dans le process user avec mmap. Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis preneur. "l'indien" a écrit dans le message de news:
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.
Oui c'est exactement ca .
je vois bien comment faire le vmalloc dans le module , mais comment
récupérer l' adresse de cette zone dans le process user avec mmap.
Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis
preneur.
"l'indien" <l_indien_no_more_spams@magic.fr> a écrit dans le message de
news: pan.2005.02.02.11.47.54.491033@magic.fr...
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour,
je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un
process utilisateur et un module pilote PCI.
j'ai vu qu'on peut le faire soit par mmap soit par shmem ,
quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le
choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que
le device qui y accède implémente les primitives mmap et munmap sur
cette zone. C'est la seule approche valide.
Oui c'est exactement ca . je vois bien comment faire le vmalloc dans le module , mais comment récupérer l' adresse de cette zone dans le process user avec mmap. Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis preneur. "l'indien" a écrit dans le message de news:
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.
l'indien
On Wed, 02 Feb 2005 13:51:26 +0100, Salut wrote:
Oui c'est exactement ca . je vois bien comment faire le vmalloc dans le module , mais comment récupérer l' adresse de cette zone dans le process user avec mmap. Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis preneur.
Tu doit créer un device dans ton module et implémenter l'appel mmap correspondant à ce device comme mappant la mémoire retournée par le vmalloc pour le process appelant. Beaucoup de drivers font celà. Regarde par exemple du coté des devices v4l qui permettent, pour certains, de mapper directement la mémoire de capture vidéo. Ton code sera très proche... Contacte moi par mail, je pourrais peut-être te faire un squelette en C...
"l'indien" a écrit dans le message de news:
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.
On Wed, 02 Feb 2005 13:51:26 +0100, Salut wrote:
Oui c'est exactement ca .
je vois bien comment faire le vmalloc dans le module , mais comment
récupérer l' adresse de cette zone dans le process user avec mmap.
Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis
preneur.
Tu doit créer un device dans ton module et implémenter l'appel mmap
correspondant à ce device comme mappant la mémoire retournée par le
vmalloc pour le process appelant.
Beaucoup de drivers font celà. Regarde par exemple du coté des devices
v4l qui permettent, pour certains, de mapper directement la mémoire de
capture vidéo. Ton code sera très proche...
Contacte moi par mail, je pourrais peut-être te faire un squelette en C...
"l'indien" <l_indien_no_more_spams@magic.fr> a écrit dans le message de
news: pan.2005.02.02.11.47.54.491033@magic.fr...
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour,
je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un
process utilisateur et un module pilote PCI.
j'ai vu qu'on peut le faire soit par mmap soit par shmem ,
quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le
choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que
le device qui y accède implémente les primitives mmap et munmap sur
cette zone. C'est la seule approche valide.
Oui c'est exactement ca . je vois bien comment faire le vmalloc dans le module , mais comment récupérer l' adresse de cette zone dans le process user avec mmap. Si tu connais un exemple ou un site qui pourrais m'expliquer ca , je suis preneur.
Tu doit créer un device dans ton module et implémenter l'appel mmap correspondant à ce device comme mappant la mémoire retournée par le vmalloc pour le process appelant. Beaucoup de drivers font celà. Regarde par exemple du coté des devices v4l qui permettent, pour certains, de mapper directement la mémoire de capture vidéo. Ton code sera très proche... Contacte moi par mail, je pourrais peut-être te faire un squelette en C...
"l'indien" a écrit dans le message de news:
On Wed, 02 Feb 2005 09:04:42 +0000, Kakrocq wrote:
bonjour, je voudrais avoir de la mémoire partagée ( 100Ko environ) entre un process utilisateur et un module pilote PCI. j'ai vu qu'on peut le faire soit par mmap soit par shmem , quel est la meilleur solution en terme de performance.
Si c'est entre un process user et un module, tu n'as pas beaucoup le choix.
Il faut que ton module fasse un vmalloc de la taille souhaitée et que le device qui y accède implémente les primitives mmap et munmap sur cette zone. C'est la seule approche valide.