<kernel v5.0>
전역 변수 nr_cpu_ids에 최종 cpu 번호 + 1을 설정한다.
- 일반적인 머신에서는 NR_CPUS값과 nr_cpu_ids 값이 동일하지만 NR_CPUS가 수천으로 설정이 되는 시스템에서는 실제 운영가능한 최고 cpu 번호를 알아내어 저장할 필요가 있다.
setup_nr_cpu_ids()
kernel/smp.c
/* An arch may set nr_cpu_ids earlier if needed, so this would be redundant */ void __init setup_nr_cpu_ids(void) { nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; }
전역 nr_cpu_ids 변수에 possible cpu id + 1 값이 담긴다.
- nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1;
- 전역 nr_cpu_ids에 possible cpu id 중 가장 높은 cpu id + 1이 저장된다.
- nr_cpu_ids는 아키텍처에 따라 먼저 설정되어 있을 수도 있다.
참고
- Bit Operations | 문c
- Bitmap Operations | 문c