Gu�a Informal al Bloqueo | ||
---|---|---|
Anterior | Cap�tulo 2. Dos Tipos Principales de Bloqueos del N�cleo: Spinlocks y Sem�foros | Siguiente |
Si un bottom half comparte datos con el contexto de usuario, tienes dos problemas. El primero, el actual contexto de usuario puede ser interrumpido por un bottom half, y el segundo, la regi�n cr�tica puede ser ejecutada desde otra CPU. Aqu� es donde es usado spin_lock_bh() (include/linux/spinlock.h). El deshabilita los bottom halves es esta CPU, entonces coge el bloqueo. spin_unlock_bh() realiza lo inverso.
Esto adem�s funciona perfectamente para UP ; el spinlock desaparece, y esta macro simplemente se transforma en local_bh_disable() (include/asm/softirq.h), la cual te protege de que el bottom half se ejecute.