Retourner aux forums || Retourner au forum general.general

general.general : speedtouch et modem_run

Posté par mathieu mathieu (Jabber id, page perso, ) le 03 novembre 2004
0
Ici pas de question, mais une solution à un problème que j'ai eu du mal à résoudre ...

Mon modem a fonctionné pendant 2 ans sans problème avec une vieille version du driver userhand http://speedtouch.sourceforge.net.(...)
Une faille à jour de sécurité m'a contraint de le mettre à jour (>1.3)

Depuis j'étais confronté au problème de ne plus pouvoir me connecter, modem_run refusant (sans me dire pourquoi), de recharger le firmware.

En fouillant un peu dans la mailing list, un mutex (ou plutot un sémaphore) est créé et si celui-ci existe, modem_run quitte sans éffectuer le chargement.

la solution est d'exécuter cela afin de supprimer ce :
+# cleaning the mutex
+ipcs -a | grep 0xdeadbeef >/dev/null 2>&1
+if [ $? = 0 ]; then
+ ipcrm -S 0xdeadbeef
+fi
+

- pas de message explicatif sur l'echec du modem_run
- pas de possibilité de demander à modem_run de forcer le chargement du firmeware


Dans la mailing liste, on parle de mutex et pas de sémaphore, alors que l'on utilise IPC.
J'ai toujours cru qu'un mutex est un flag "non système" à l'interieur d'un processus, accessible uniquement par les threads de ce processus alors qu'un sémaphore est une "valeur système" accessible par plusieurs processus...
Les développeurs ont-ils commis une erreur de langage? Est ce moi qui ait des connaissances érronées?

Mathieu

> Lire le message (5 commentaires, moyenne: 1,4).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Un peu plus d'infos

Posté par Spike-Sp (page perso, ) le 03/11/2004 à 21:35. (lien). Évalué à 1.

Quel noyau ? quelle distrib ? et as-tu essayé le driver du noyau ?

  • [^]Re: Un peu plus d'infos

    Posté par mathieu mathieu (Jabber id, page perso, ) le 04/11/2004 à 08:29. (lien). Évalué à 1.

    Je suis en debian stable!

    J'utilise un noyau 2.4.27

    J'ai essayé il ya fort longtemps le driver du noyau et ca plantait ...


    Je prefere utiliser le driver userhand car il est indépendant du noyau et je trouve ca plus simple (pas besoin de recompiler etc.).

Version 1.3

Posté par Boa Treize (page perso, ) le 04/11/2004 à 08:58. (lien). Évalué à 2.

J'avais voulu aussi passer à la version 1.3 il y a quelques mois, juste pour le principe d'utiliser la dernière version stable publiée. Vu que justement modem_run merdait grave et que j'avais pas le temps de me pencher dessus, je suis retourné à la version précédente, qui fonctionne toujours aussi bien.

Un jour peut-être, je ferai une nouvelle tentative.

Pourquoi mutex.

Posté par Edouard Gomez (page perso, ) le 04/11/2004 à 09:10. (lien). Évalué à 2.

La réponse est simple:
Un mutex est un service qui fait que tout demandeur du mutex reste bloqué si celui ci est déjà en cours d'utilisation.

Un sémaphore est une réserve de jetons, une fois la réserve epuisée, le demandeur de jeton est bloqué. Si un sémaphore ne possède qu'un jeton, son fonctionnement simule celui d'un mutex.

Donc moralité, ne pas confondre le contenu (marquer une ressource comme mutuellement exclusive) avec la forme (pthread mutex, sémaphore IPC à un jeton, futex, spinlock etc...)

  • [^]Re: Pourquoi mutex.

    Posté par mathieu mathieu (Jabber id, page perso, ) le 04/11/2004 à 09:47. (lien). Évalué à 1.

    Problème de fond ou problème de forme?

    Désolé d'être pointilleux, je ne veux pas passer pour un emmerdeur. Je suis le premier à être reconnaissant du développement de ce driver que j'utilise depuis le début ;)

    Fonctionnellement, un mutex fonctionne comme un semaphore à un seul jeton, là dessus pas de problème!

    Mais pour moi la différence n'était pas que là, elle était surtout dans le fait que l'un fonctionne entre processus et pas l'autre ....

    Ma vision s'approche plus de cette définition... http://www.webopedia.com/TERM/M/mutex.html(...)

    Grande surprise en ouvrant mutex.c en apercevant des IPC

    Un mutex fait parti du processus et disparait avec ...
    Un sémaphore est géré par le système et ne disparait pas lorsque le processus disparait...

    Donc pour moi dire que modem_run utilise un mutex est une erreur de langage, un sémaphore à 1 jeton serait plus juste ....

    Mathieu,

Revenir en haut de page || Retourner aux forums || Retourner au forum general.general