spin_lock en núcleos linux no preventivos

Leí que en un sistema con 1 CPU y kernel de Linux no preventivo (2.6.x), una llamada spin_lock es equivalente a una llamada vacía y, por lo tanto, se implementa de esa manera.

No puedo entender eso: ¿no debería ser equivalente a dormir en un mutex? Incluso en los núcleos no preventivos, los manejadores de interrupciones aún pueden ejecutarse, por ejemplo, o podría llamar a una función que suspendería el hilo original. Por lo tanto, no es cierto que una llamada vacía spin_lock sea "segura" como lo sería si se implementara como un mutex.

¿Hay algo que no entiendo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta