리눅스 커널 spinlock·mutex 오용 디버깅 — DEBUG_SPINLOCK, DEBUG_MUTEXES, lockdep 실측 비교

스핀락(spinlock)과 뮤텍스(mutex)를 잘못 쓴 커널 코드는 대부분 조용히 지나간다. 초기화하지 않은 스핀락은 0으로 채워진 메모리라 x86에서는 그냥 동작하고, 스핀락 안에서 호출한 kmalloc(GFP_KERNEL)은 메모리가 넉넉하면 잠들지 않으니 아무 일도 없다. 그러다…

Continue Reading리눅스 커널 spinlock·mutex 오용 디버깅 — DEBUG_SPINLOCK, DEBUG_MUTEXES, lockdep 실측 비교