linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

最適化 - __branch_check__()

概要

二つの値が一致するか比較する

詳細

likely_notrace()に比較対象の値が0以外かどうか確認し、比較した結果を返す

また、このマクロ呼び出しの結果をftrace_likely_update()で統計情報(ヒット・ミスのカウンタ)を更新する

このマクロはunlikely()でも呼ばれているのに一律likely_notrace()の結果を返してるので一見適切に動かないように見えますが、なぜこのようになっているかご存知のかたは教えていただけると助かります。。。