linuxのメモ

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

最適化 - likely_notrace()

概要

引数の値が期待値と一致するか確認する

詳細

__builtin_expect()*1_の第一引数に受け取った引数に!を二回つけることで0の場合は0、それ以外の場合は1を渡し、第二引数に1を渡すことで受け取った引数の値が0で無いことを確認する

尚、このコードは値が0出ないことを期待するため0以外の値を取得した場合に高速に動作するように最適化される

*1:コンパイラの組み込み関数