티스토리 뷰

개발/Linux

for_each_possible_cpu

Jaeyeon Baek 2011. 11. 1. 13:02
for_each_possible_cpu() 는 CPU(NR_CPUS)의 갯수만큼 루프를 도는 커널 매크로. (kernel 2.6 기준)
#define for_each_possible_cpu(cpu)  for_each_cpu_mask((cpu), cpu_possible_map)

NR_CPUS는 Command-line option으로 제어가 가능하니 참고하도록 합시다. for_each_cpu_mask 내부는 아래와 같습니다.

#if NR_CPUS > 1
#define for_each_cpu_mask(cpu, mask)            \
        for ((cpu) = first_cpu(mask);           \
                (cpu) < NR_CPUS;                \
                (cpu) = next_cpu((cpu), (mask)))
#else /* NR_CPUS == 1 */
#define for_each_cpu_mask(cpu, mask)            \
        for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
#endif /* NR_CPUS */


※ NR_CPUS 값이 비정상일 경우 부팅에 문제가 생길 수 있음을 주의하도록 합니다.


'개발 > Linux' 카테고리의 다른 글

비용이 낮은 연산자 선택 [%->&, / -> >>]  (0) 2011.11.20
pages_to_mb  (0) 2011.11.02
dmesg Option  (0) 2011.10.31
vmalloc 영역... [가설]  (0) 2011.10.28
RPC Packet header에 대한 짧은 참고의 글..  (0) 2011.10.13
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday