[Kos-dev] Probleme du double fault : quelques news

Thomas Petazzoni kos-dev@enix.org
Sat, 09 Jun 2001 22:54:13 +0200


Salut,

apres investigations, j'ai note qu'il etait possible de connaitre l'irq
qui avait pose probleme en lisant le ISR (interrupt service register),
ce qui est fait dans le handler de dbflt.

d'autre part, et plus important, quand on regarde l'EIP du TSS systeme,
et bien on se rend compte qu'elle se situe bien dans le handler d'IRQ1
(plus exactement dans la fonction check_timer dans le cas ou je me
trouvais).

IRR Master : 0x1, IRR Slave : 0x0
lookup_sym(0x2005f67e) => /modules/sched.ro:check_timers+0x6.


conclusion : on peut relancer sans aucun probleme le handler d'IRQ, et
ce meme si isr_nested_level >= 1, en ayant ajoute une page pour la pile.
par contre, si le double fault a lieu pendant les trois push du debut de
l'irq (push eflags, push cs, push eip) je ne sais pas ce qui se passe.

cependant ce que je ne comprends pas c'est que c'est ce que nous
faisions auparavant, et pourtant ca ne fonctionnait pas, le EOI n'etait
pas envoye. les recherches doivent donc continuer.

thomas
-- 
PETAZZONI Thomas
thomas.petazzoni@meridon.com     UIN : 34937744
Projet KOS : http://kos.enix.org
Page Perso : http://www.enix.org/~thomas/