linuxのメモ

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

CPU操作 - percpu_stable_op()

概要

CPU固有の指定した値を任意のアセンブラ命令で取得する

詳細

以下の引数を受け取る

  • オペコード : op
  • 入力値 : var

入力値を指定する際に__percpu_arg()マクロにP1を引数として渡して実行した結果を使用している

P1を指定することによりアセンブラ命令実行中の割込みを抑止し、取得した値はキャッシュされる

また、opにはvarのサイズに応じてb, w, l, qのsuffixが付加されるが、sizeが1, 2, 4, 8以外の場合は__bad_percpu_size()が実行される