serenity/Kernel/Locking
Brian Gianforcaro 066b0590ec Kernel/Locking: Add lock rank tracking per thread to find deadlocks
This change adds a static lock hierarchy / ranking to the Kernel with
the goal of reducing / finding deadlocks when running with SMP enabled.

We have seen quite a few lock ordering deadlocks (locks taken in a
different order, on two different code paths). As we properly annotate
locks in the system, then these facilities will find these locking
protocol violations automatically

The `LockRank` enum documents the various locks in the system and their
rank. The implementation guarantees that a thread holding one or more
locks of a lower rank cannot acquire an additional lock with rank that
is greater or equal to any of the currently held locks.
2021-09-07 13:16:01 +02:00
..
Lockable.h Kernel: Move Lockable into its own header 2021-08-07 11:48:00 +02:00
LockLocation.h Kernel: Switch static_asserts of a type size to AK::AssertSize 2021-09-05 20:08:57 +02:00
LockMode.h
LockRank.cpp Kernel/Locking: Add lock rank tracking per thread to find deadlocks 2021-09-07 13:16:01 +02:00
LockRank.h Kernel/Locking: Add lock rank tracking per thread to find deadlocks 2021-09-07 13:16:01 +02:00
Mutex.cpp Kernel: Make all Spinlocks use u8 for storage, remove template 2021-09-05 20:46:02 +02:00
Mutex.h Kernel: Make all Spinlocks use u8 for storage, remove template 2021-09-05 20:46:02 +02:00
MutexProtected.h Kernel: Simplify MutexProtected<T> 2021-08-22 03:34:09 +02:00
Spinlock.h Kernel: Make all Spinlocks use u8 for storage, remove template 2021-09-05 20:46:02 +02:00
SpinlockProtected.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00