Feu servir la funció mutex_lock_interruptible per permetre que el vostre conductor sigui interromput per qualsevol senyal. Això implica que s'hauria d'escriure la trucada al sistema perquè es pugui reiniciar. (Vegeu també ERESTARTSYS.)
Puc bloquejar un spinlock en una CPU i desbloquejar-lo una altra CPU?
L'ús de spinlocks en un sistema d'un sol nucli/una sola CPU normalment no té sentit, ja que mentre l'enquesta de spinlock està bloquejant l'únic nucli de CPU disponible, no es pot executar cap altre fil i com que no es pot executar cap altre fil, el bloqueig tampoc es desbloquejarà.
Puc trucar a Kmalloc Gfp_kernel mentre tinc un spinlock?
No pots, però, no pots fer res que s'adormi mentre tens un spinlock. Per exemple, no crideu mai cap funció que toqui la memòria de l'usuari, kmalloc amb el senyalador GFP_KERNEL, cap funció de semàfor o cap de les funcions de programació mentre manteniu un spinlock. … Els semàfors a Linux estan bloquejats.
Què és Spinlock_t?
int spin_trylock(spinlock_t lock) Bloqueja el spinlock si encara no està bloquejat. Si no pot obtenir el bloqueig, surt amb un error i no gira el bloqueig. spin_lock_irq: spin_lock_irq(spinlock_t lock)
Què és un mutex del nucli?
Al nucli de Linux, els mutex fan referència a una primitiva de bloqueig particular que obliga la serialització en sistemes de memòria compartida, i no només al terme genèric que fa referència a "exclusió mútua" que es troba a llibres de text teòrics del món acadèmic o similars.