[Kos-dev] Re: [Kos-cvs] [kos] Modification CVS par d2

Thomas Petazzoni kos-dev@enix.org
Wed, 13 Jun 2001 12:17:18 +0200


> Test double fault sur les push implicites du processeur a la levee d'une IRQ. Teste ****SOUS BOCHS****. Le system_tss est charge avec le contexte de la tache interrompue : rien ne semble indiquer qu'une irq est a l'origine du #DF, ni quelle IRQ. Ceci dit, le contexte interrompu a une forme potable. Peut-etre qu'en relancant le contexte interrompu, l'irq est immediatement relancee. Ou peut-etre qu'il faut consulter a la main les registres du PIC a chaque fin de #DF, pour savoir si c'etait une IRQ qui etait a l'origine du #DF. Choses a faire : verifier qu'on a des resultats equivalents sur machine reelle (Cx, Intel, AMD). Verifier en profondeur tous les champs du TSS. Verifier ce qui se passe a la sortie du TSS : IRQ a l'origine du #DF ***Immediatement*** relancee ou pas, ou il faut consulter le PIC a la main. Regarder ce qui se passe quand le #DF a lieu pendant une ISR : s'assurer que le contexte interrompu est celui de l'ISR, pas celui de la tache.


j'ai effectivement fait le meme test hier soir, et je suis arrive a la
meme conclusion. le seul moyen de savoir qu'on etait dans une IRQ c'est
de consulter les registres du PIC. reste encore une inconnue a
determiner : le nombre de push qu'il a effectue si le champ du TSS
indique le ESP reel ou le ESP avant qu'il commence a faire les push pour
rentrer dans le handler d'interruption.

a mon avis, le TSS contiendra le ESP de avant qu'il commence a faire les
push, mais c'est a verifier. a partir de la, on ecrit du code, puis on
teste sur Intel, Cyrix et AMD. (je peux tester sur PII, K6-2, mais pas
sur Celeron car je vous le rappelle KOS boote tjs pas sur mon portable).
mon frere pourra tester sur Duron.

par contre ce qui est de Cyrix ... aucune idee.

thomas
-- 
PETAZZONI Thomas
thomas.petazzoni@meridon.com
ICQ : 34937744
Projet KOS : http://kos.enix.org