Lines Matching full:cpu

21 #include <linux/cpu.h>
37 /* State of each CPU */
48 static inline void __cpuinit smp_store_cpu_info(unsigned int cpu) in smp_store_cpu_info() argument
50 struct sh_cpuinfo *c = cpu_data + cpu; in smp_store_cpu_info()
59 unsigned int cpu = smp_processor_id(); in smp_prepare_cpus() local
62 current_thread_info()->cpu = cpu; in smp_prepare_cpus()
72 unsigned int cpu = smp_processor_id(); in smp_prepare_boot_cpu() local
74 __cpu_number_map[0] = cpu; in smp_prepare_boot_cpu()
75 __cpu_logical_map[0] = cpu; in smp_prepare_boot_cpu()
77 set_cpu_online(cpu, true); in smp_prepare_boot_cpu()
78 set_cpu_possible(cpu, true); in smp_prepare_boot_cpu()
80 per_cpu(cpu_state, cpu) = CPU_ONLINE; in smp_prepare_boot_cpu()
84 void native_cpu_die(unsigned int cpu) in native_cpu_die() argument
90 if (per_cpu(cpu_state, cpu) == CPU_DEAD) { in native_cpu_die()
92 pr_info("CPU %u is now offline\n", cpu); in native_cpu_die()
100 pr_err("CPU %u didn't die...\n", cpu); in native_cpu_die()
103 int native_cpu_disable(unsigned int cpu) in native_cpu_disable() argument
105 return cpu == 0 ? -EPERM : 0; in native_cpu_disable()
125 unsigned int cpu = smp_processor_id(); in __cpu_disable() local
129 ret = mp_ops->cpu_disable(cpu); in __cpu_disable()
134 * Take this CPU offline. Once we clear this, we can't return, in __cpu_disable()
135 * and we must not schedule until we're ready to give up the cpu. in __cpu_disable()
137 set_cpu_online(cpu, false); in __cpu_disable()
140 * OK - migrate IRQs away from this CPU in __cpu_disable()
145 * Stop the local timer for this CPU. in __cpu_disable()
147 local_timer_stop(cpu); in __cpu_disable()
150 * Flush user cache and TLB mappings, and then remove this CPU in __cpu_disable()
159 cpumask_clear_cpu(cpu, mm_cpumask(p->mm)); in __cpu_disable()
165 int native_cpu_disable(unsigned int cpu) in native_cpu_disable() argument
170 void native_cpu_die(unsigned int cpu) in native_cpu_die() argument
184 unsigned int cpu = smp_processor_id(); in start_secondary() local
198 notify_cpu_starting(cpu); in start_secondary()
203 local_timer_setup(cpu); in start_secondary()
206 smp_store_cpu_info(cpu); in start_secondary()
208 set_cpu_online(cpu, true); in start_secondary()
209 per_cpu(cpu_state, cpu) = CPU_ONLINE; in start_secondary()
223 int __cpuinit __cpu_up(unsigned int cpu) in __cpu_up() argument
228 tsk = cpu_data[cpu].idle; in __cpu_up()
230 tsk = fork_idle(cpu); in __cpu_up()
232 pr_err("Failed forking idle task for cpu %d\n", cpu); in __cpu_up()
236 cpu_data[cpu].idle = tsk; in __cpu_up()
239 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; in __cpu_up()
251 mp_ops->start_cpu(cpu, (unsigned long)_stext); in __cpu_up()
255 if (cpu_online(cpu)) in __cpu_up()
262 if (cpu_online(cpu)) in __cpu_up()
271 int cpu; in smp_cpus_done() local
273 for_each_online_cpu(cpu) in smp_cpus_done()
274 bogosum += cpu_data[cpu].loops_per_jiffy; in smp_cpus_done()
282 void smp_send_reschedule(int cpu) in smp_send_reschedule() argument
284 mp_ops->send_ipi(cpu, SMP_MSG_RESCHEDULE); in smp_send_reschedule()
294 int cpu; in arch_send_call_function_ipi_mask() local
296 for_each_cpu(cpu, mask) in arch_send_call_function_ipi_mask()
297 mp_ops->send_ipi(cpu, SMP_MSG_FUNCTION); in arch_send_call_function_ipi_mask()
300 void arch_send_call_function_single_ipi(int cpu) in arch_send_call_function_single_ipi() argument
302 mp_ops->send_ipi(cpu, SMP_MSG_FUNCTION_SINGLE); in arch_send_call_function_single_ipi()
307 int cpu; in smp_timer_broadcast() local
309 for_each_cpu(cpu, mask) in smp_timer_broadcast()
310 mp_ops->send_ipi(cpu, SMP_MSG_TIMER); in smp_timer_broadcast()
366 * address spaces, a new context is obtained on the current cpu, and tlb
371 * mm might be active on another cpu (eg debuggers doing the flushes on