likely(), unlikely() 는 include/linux/compiler.h 에 정의된 macro 이다.
이것의 용도는 컴파일러에게 branch 예측을 도와 주는 용도로 사용이된다.
즉, 대부분 0으로 예측이 된다면 unlikely(x) 의 형태로 쓰고, 1로 예상되는 값을 likely(x) 로 쓴다.
예측을 도와 줌으로써 성능의 향상을 볼 수 있도록 하는 것이다.
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
출처: http://woodz.tistory.com/67
원본 URL : http://kernelnewbies.org/FAQ/LikelyUnlikely
(사용시 차이점: http://www.iamroot.org/xe/Kernel_8_ARM/53988 <== 8차 스터디 게시물)
.