linuxのメモ

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

atomic操作 - __cmpxchg()

概要

比較値が古い値と等しい場合に指定されたサイズの新しい値に書き換える

詳細

受け取った引数にLOCK_PREFIXを追加して__raw_cmpxchg()を実行する

LOCK_PREFIXにはCONFIG_SMPが有効な場合は"\n\tlock; "の文字列が入り、全てのCPUでこの操作に伴うメモリの変更が同期される