setup_nr_cpu_ids()

<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는 아키텍처에 따라 먼저 설정되어 있을 수도 있다.

 

참고

댓글 남기기