[Kos-dev] Double fault, maj du handler
d2
kos-dev@enix.org
28 Jun 2001 11:58:45 +0200
Bonjour,
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@meridon.com> writes:
Thomas> SI (adresse de la pile fautive < cpl0_stack_addr + MARGE -
Thomas> PAGE_SIZE|| adresse de la pile fautive > cpl0_stack_addr +
Thomas> STACK_SIZE) => ON ARRETE LE SYSTEME
Ca serait pas plutot :
SI (adresse de la pile fautive < cpl0_stack_addr + PAGE_SIZE ||
adresse de la pile fautive > cpl0_stack_addr +
STACK_SIZE)
=> ON ARRETE LE SYSTEME
(ie pas de "+ MARGE") ???
Pour le reste, le C ca serait plus facile pour voir.
Thomas> J'ai code (enfin je sais pas si c bien fait) le machin de
Thomas> d2 pour faire la reentrance, mais pour qu'il ait
Thomas> reentrance faut appeler 2 fois reschedule. Or dans mon
Thomas> handler de double fault, je vois pas pourquoi dans le cas
Thomas> precis qui chie j'irais appeler le reschedule. A quoi ca
Thomas> me sert, je lui donne quoi en argument ? Je fais quoi du
Thomas> resultat ?
Pour etre clair, rappelons ce qu'il faut faire :
- Rendre reschedule reentrant (cf algo)
- Dans #DF, ne pas appeler reschedule(), mais simplement positionner
"dont_need_another_reschedule = 0"
En effet, le probleme de la reentrance du reschedule est un
sur-probleme a notre probleme. En le resolvant le pb de la reentrance,
non seulement on resoud notre probleme, mais en plus on prend un peu
d'avance sur les problemes a venir (... de /vraie/ reentrance du
reschedule).
Bonne journee,
--
d2