spin 계열과 BH 계열 API 의 차이점을 좀 알려주세요.

trymp의 이미지

리눅스 커널을 공부하는 학생입니다.

spin_lock_irqsave();
spin_unlock_irqrestore();

local_bh_disable();
local_bh_enable();

위의 spin 계열과 local_bh 계열 API 의 차이점을 알고 싶습니다.

둘 다 lock 종류인 것 같은데, 어떤 때 쓰임에 차이가 있는지 알려주시면

감사하겠습니다.