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

Thomas Petazzoni kos-dev@enix.org
21 Feb 2002 19:17:19 +0100


"Christophe" <christophe.avoinne@laposte.net> writes:

> int lock_pte (unsigned long *pte) {
>     unsigned long requested_value,new_value,eflags;
>     eflags = save_eflags_and_cli ();
>     while (1) {
>         if ((requested_value = *pte) & PTE_LOCKED)
>             continue;
>         new_value = requested_value | PTE_LOCKED;
>         if (cmpxchg (pte,requested_value,new_value))
>             break;
>     }
>     return status;
> }

Pas mal l'idee d'utiliser un des bits "Available for programmer use"
pour locker les PTE. Peut etre que l'utiliser au niveau des PDE
permettrait de locker avec un grain plus fin. Mais AMHA ca sera utile
qu'au niveau de l'espace user, parce que au niveau kernel avec la
synchronisation entre tous les PDs c'est peu la merde !

Par contre je vois pas bien a quoi sert ton requested_value... C'est
la valeur attendue dans le PTE ?

Bref si tu pouvais commenter un peu plus, ca pourrait m'etre utile ;)

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
(Perso)      http://www.enix.org/~thomas/
(KOS)        http://kos.enix.org/ 
(Club LinUT) http://club-linut.enix.org