本文共 743 字,大约阅读时间需要 2 分钟。
/** * idle_threads_init - Initialize idle threads for all cpus */void __init idle_threads_init(void){ unsigned int cpu, boot_cpu; boot_cpu = smp_processor_id(); for_each_possible_cpu(cpu) { if (cpu != boot_cpu) idle_init(cpu); }}
static inline void idle_init(unsigned int cpu){ struct task_struct *tsk = per_cpu(idle_threads, cpu); if (!tsk) { tsk = fork_idle(cpu); if (IS_ERR(tsk)) pr_err("SMP: fork_idle() failed for CPU %u\n", cpu); else per_cpu(idle_threads, cpu) = tsk; }}
struct task_struct *fork_idle(int cpu){ struct task_struct *task; task = copy_process(CLONE_VM, 0, 0, NULL, &init_struct_pid, 0, 0, cpu_to_node(cpu)); if (!IS_ERR(task)) { init_idle_pids(task->pids); init_idle(task, cpu); } return task;}
转载地址:http://ykhti.baihongyu.com/