Cap�tulo 4. T�cnicas Comunes

Esta secci�n lista algunos dilemas comunes y las soluciones est�ndar usadas en el c�digo del n�cleo Linux. Si usas estas, la gente encontrar� tu c�digo m�s f�cil de entender.

Si pudiera darte una parte de un aviso ser�a: nunca duermas con alguien m�s loco/a que t�. Pero si tuviera que darte un aviso en el bloqueo: mantente s�lo.

Bloquea a los datos, no al c�digo.

Se reacio a introducir nuevos bloqueos.

Suficientemente ajeno, esto es justo lo contrario de mi aviso cuando tienes que dormir con alguien m�s loco/a que t�.

4.1. En un Contexto de Interrupciones No Escritores

Hay un caso bastante com�n donde un manejador de interrupciones necesita acceder a la regi�n cr�tica, pero no necesita acceso de escritura. En este caso, no necesitas usar read_lock_irq(), �nicamente read_lock() en todos los sitios (desde que ocurre una interrupci�n, el manejador irq s�lo intentar� coger el bloqueo, que no har� deadlock). Todav�a necesitas usar write_lock_irq().

Una l�gica similar se aplica al bloqueo entre softirqs/tasklets/BHs que nunca necesitan un bloqueo de escritura, y al contexto de usuario: read_lock() y write_lock_bh().