Deadlock
Deadly embrace
hash table: each entry in the table is a spinlock, and a chain of hashed objects
1) your code ever tries to move the object to the same chain
2) same softirq on another CPU is trying to move another object in the reverse direction
Deadlock Avoidance
split-phase locking
encapsulated lock
Grab lock A -> OK Grab lock B -> OK
Grab lock B -> spin Grab lock A -> spin