spinlock
spinlock機能は、CPUを排他するための機能。
SMPでない環境では動作しない。
つまり、
spinlock = spinlock_cpu
なのである
spinlock_t
CONFIG_SMP / CONFIG_SPINLOCK_DEBUGでない場合は
spinlock_tで定義した変数はそもそも定義されない
また、spinlockに関わるマクロも動作しない(空マクロが定義されるだけ)
spin_lock_XXX
spin_lock_bh
はCPU排他と同時にbh(ソフト割り込みハンドラの実行)を排他するための
機能であるため、上記とは違って、SMPでなくてもきちんと動作する
他のspinlock_XXXも、XXXを排他するための機能と認識すること
- spin_lock_irq
- spin_lock_irqsave
など