linuxのメモ

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

CPU操作 - __PCPU_ATTRS()

概要

CPU個別のデータを定義する属性を生成する

詳細

以下のコードでCPU個別のデータを定義する属性を生成する

__percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \
PER_CPU_ATTRIBUTES

この時、__percpuPER_CPU_ATTRIBUTESは空文字に変換されるため実質

__attribute__((section(PER_CPU_BASE_SECTION sec)))

というコードになる

PER_CPU_BASE_SECTIONCONFIG_SMPが有効な場合".data..percpu"になるが、無効な場合は".data"となり通常のデータディレクティブになり、これらのディレクティブ内の指定したセクションにデータを配置する属性を生成することになる