linuxのメモ

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

プリエンプション - preempt_enable_no_resched_notrace()

概要

プリエンプションを有効にする

詳細

barrier()を実行するがCONFIG_PREEMPT_COUNTが有効な場合は__preempt_count_dec()__preempt_countをインクリメントし、プリエンプションを有効にする

この時、複数のプリエンプションが実行されている場合は__preempt_countの値が0にならないためプリエンプションは無効にならず、すべてのプリエンプションが終了したときに0に戻りプリエンプションが有効になる