[Kos-dev] Reentrance de reschedule : un solution ?

d2 kos-dev@enix.org
25 Jun 2001 16:39:51 +0200


>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@ifrance.com> writes:
    Thomas> okay la je comprends mieux. pourrais-tu mettre a jour
    Thomas> draft-0 avec toutes les precisions apportees dans ce mail
    Thomas> (concernant l'exemple d'un machin non reentrant,
    Thomas> concernant cette explication, et d'autres) ?

Peut-etre.

    Thomas> je ne comprends pas trop la relation de cause a effet
    Thomas> existant entre 'le BH n'est pas associe a un thread
    Thomas> propre' et 'il est hors de question que ce BH puisse
    Thomas> bloquer en attente sur ressource'.

Pour etre honnete, c'est pas evident.

En gros, ce que je crains, c'est qu'un pauvre thread qui n'a rien
demande et qui se fait interrompre par une ISR qui bloque, va se
retrouver bloque lui aussi alors qu'il a rien demande. Si ce thread
effectue des gros calculs (ie ne bloque jamais), c'est idiot de le
bloquer, et partant de l'empecher de faire ses calculs alors qu'il
pourrait tres bien les faire. Bref, je crains une sous-utilisation du
processeur (d'avantage visible en SMP).

C'est peut-etre discutable.

    Thomas> je suis d'accord sur le principe, mais pas sur la
    Thomas> terminlogie : pourquoi thread mandataire ? pourquoi proxy
    Thomas> ?

En info, la traduction classique de "proxy" est "mandataire" en
Francais. C'est un design pattern en Objet
(http://www.clickblocks.org/patterns1/pattern_synopses.htm#Proxy). Par
analogie (abus de langage), j'ai appele ces taches "mandataires" car
elles jouent le role de proxy pour les traitements des ISR.

    Thomas> necessite de ton systeme des ipl, pourrais-tu le preciser
    Thomas> ?

cli/sti = blocage binaire des IRQ + on perd les interruptions pdt
cette periode.
L'idee, c'est qu'avec le mecanisme plus fin des IPLs, on remplace les
cli/sti par un mecanisme de memorisation des ISR qui ont eu lieu, pour
en tenir compte soit immediatement (priorite plus forte que l'ipl
courant), soit plus tard (priorite plus faible). Ca a peut-etre encore
plussssse son interet dans les BH : puisqu'a ce moment on devient
interruptible, mais on peut selectionner par quoi on peut etre
interrompu (on retarde les IRQ qu'on veut). Un autre interet, c'est aussi
qu'on peut "personnaliser" les priorites des interruptions (on peut
deja le faire par d'autres moyens, mais bon).

Bonne journee,

-- 
d2