linuxのメモ

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

CPU操作 - setup_nr_cpu_ids()

概要

CPU数を保持する変数を初期化する

詳細

CONFIG_SMPが無効な場合は何も行わないが、有効な場合はcpumask_bits()cpu_possible_maskを渡すことで、実行可能なCPUのビットマップを取得し、その値とNR_CPUSfind_last_bit()に渡すことでビットマップ内でビットが1になっている最も大きな位置を取得する

この値は0から始まる値となるので、この値に1を加算することで有効なCPU数をnr_cpu_idsに保存し、CPU数を保持する変数を初期化する