[Kos-dev] "Race condition" 1

Thomas Petazzoni kos-dev@enix.org
Mon, 26 May 2003 14:00:51 +0200


This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig74BC1E3B466CD6F4B7896DA1
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit

Hello,

> Je fatigue aussi, je ne me souvenais plus, et j'ai pas regarde avant
> d'ouvrir ma grande gueule...

Arf, pas grave, on est tous les deux un peu creve je crois ;-)

> Oui, faudrait reflechir. Et tant qu'on y est : un assert a rajouter
> dans wq_add_unsafe : ASSERT(! test_interrupts_enabled()); important
> pour etre sur de detecter si on fait des bloquages dans les ISR (y'a
> des chances qu'on s'en apercoivent tres vite, mais autant que ce soit
> explicite).

Effectivement, il faudrait ajouter ce test, mais je vois pas en quoi ça
permettrait de détecter qu'on fait des blocages dans les ISR. A priori
les interruptions sont désactivés dans un ISR, donc ton test passera.
Par contre il faudrait faire un ASSERT(get_hw_isr_nested_level() == 0);
pour être sur qu'on est pas dans une interruption.

> Il faut surement recuperer le lock qu'on a laisse tomber. Comment ? la
> est la question : y'a surement des trucs atomiques a garantir : tel
> quel (ie avec le lock de l'autre spinlock) en Unipro ca risque de
> marcher (le unlock est remote, donc irq tjs disabled), mais en
> SMP... Faudrait regarder les autres OS, ca doit etre tout simple a
> faire.

Ouaip, ça doit être tout simple, mais je ne sais pas comment le faire
;-) Et puis regarder dans les autres OS, oui, mais ça doit être perdu au
fin fond des sources, dans un endroit quasiment introuvable...

Thomas
-- 
PETAZZONI Thomas - thomas DOT petazzoni AT enix DOT org - UIN : 34937744
Web: http://www.enix.org/~thomas/
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7

--------------enig74BC1E3B466CD6F4B7896DA1
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE+0gHz9lPLMJjT96cRAsMRAJ0bmldeWuf69+RHCYqFl3L9ztcxVgCgxjOw
ygt6A+bFSF71Xu1dhQ6ktRU=
=Sq2K
-----END PGP SIGNATURE-----

--------------enig74BC1E3B466CD6F4B7896DA1--