list_for_each_safe
-
linked list API에 대해서IT/Linux Kernel 2015. 5. 19.
항상 alpha, beta로 개발된 기능은 그 자체로 simple하게 정상 동작하지만, release가 되면 문제가 손쉽게 발생하는 것 같다. 또한 이렇게 발생한 문제점은 특정 조건이라는 전제가 붙기 때문에 원인 분석에 어려움을 겪기 마련이다. 특히 재현이 잘 안되기 때문이다. 그런 의미에서 오늘은 원인을 찾기 위해 힘든 하루를 보냈다. 데이터가 일부 누락되는 상황이 간헐적으로 발생하는 현상이었데, 무엇이 문제였을까. 문제는 linked list 사용방법의 차이점에서부터 시작했다. list_head, list_for_each_safekernel에서 linked list 사용할 때와 list_for 시리즈를 사용할 때랑 조금 차이가 있다. struct list_head{ struct list_head *n..