2016-04-12 6 views
1

Was ist der Nachteil der Verwendung von Mutex im Interrupt-Kontext. Warum Spin Lock ist hier bevorzugt.Nachteil der Verwendung von Mutex im Interrupt-Kontext

+0

Das Sperren von Mutex ist im Interrupt-Kontext verboten. Der Grund ist der selbe wie für Semaphoren und wird [in der ersten verwandten Frage] beschrieben (http://stackoverflow.com/questions/3464700/why-spinlocks-in-use-in-interrupt-handlers). – Tsyvarev

+0

Ein Spin Lock ist eine Form von Mutex. – user3344003

Antwort

0

Ein Mutex erzwingt, dass die Funktion in den Ruhezustand versetzt wird, wenn es sich um einen Konflikt handelt, und das Schlafen ist unzulässig, wenn die Vorbelegung deaktiviert oder im Interruptkontext ist.

Viele Funktionen im Kernel Schlaf direkt oder indirekt (dh Bereitschaftsplan().): Sie können sie nie nennen, während ein Spinlock halten, oder mit Vorkaufsrecht deaktiviert. Dies bedeutet auch, dass Sie sich im Benutzerkontext befinden müssen: das Aufrufen von ihnen aus einem Interrupt ist illegal.

Nachfolgend ist lesenswert ...

https://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c557.html

Theres eine Unmenge an Informationen in diesem Dokument.

Verwandte Themen