Lines Matching refs:cpu

87 static void ipi_setup(int cpu);
109 static int secondary_biglittle_prepare(unsigned int cpu) in secondary_biglittle_prepare() argument
111 if (!cpu_vtable[cpu]) in secondary_biglittle_prepare()
112 cpu_vtable[cpu] = kzalloc(sizeof(*cpu_vtable[cpu]), GFP_KERNEL); in secondary_biglittle_prepare()
114 return cpu_vtable[cpu] ? 0 : -ENOMEM; in secondary_biglittle_prepare()
122 static int secondary_biglittle_prepare(unsigned int cpu) in secondary_biglittle_prepare() argument
132 int __cpu_up(unsigned int cpu, struct task_struct *idle) in __cpu_up() argument
139 ret = secondary_biglittle_prepare(cpu); in __cpu_up()
158 task_thread_info(idle)->cpu = cpu; in __cpu_up()
165 ret = smp_ops.smp_boot_secondary(cpu, idle); in __cpu_up()
174 if (!cpu_online(cpu)) { in __cpu_up()
175 pr_crit("CPU%u: failed to come online\n", cpu); in __cpu_up()
179 pr_err("CPU%u: failed to boot: %d\n", cpu, ret); in __cpu_up()
210 static int platform_cpu_kill(unsigned int cpu) in platform_cpu_kill() argument
213 return smp_ops.cpu_kill(cpu); in platform_cpu_kill()
217 static int platform_cpu_disable(unsigned int cpu) in platform_cpu_disable() argument
220 return smp_ops.cpu_disable(cpu); in platform_cpu_disable()
225 int platform_can_hotplug_cpu(unsigned int cpu) in platform_can_hotplug_cpu() argument
232 return smp_ops.cpu_can_disable(cpu); in platform_can_hotplug_cpu()
239 return cpu != 0; in platform_can_hotplug_cpu()
242 static void ipi_teardown(int cpu) in ipi_teardown() argument
258 unsigned int cpu = smp_processor_id(); in __cpu_disable() local
261 ret = platform_cpu_disable(cpu); in __cpu_disable()
266 remove_cpu_topology(cpu); in __cpu_disable()
273 set_cpu_online(cpu, false); in __cpu_disable()
274 ipi_teardown(cpu); in __cpu_disable()
298 void __cpu_die(unsigned int cpu) in __cpu_die() argument
300 if (!cpu_wait_death(cpu, 5)) { in __cpu_die()
301 pr_err("CPU%u: cpu didn't die\n", cpu); in __cpu_die()
304 pr_debug("CPU%u: shutdown\n", cpu); in __cpu_die()
306 clear_tasks_mm_cpumask(cpu); in __cpu_die()
314 if (!platform_cpu_kill(cpu)) in __cpu_die()
315 pr_err("CPU%u: unable to kill\n", cpu); in __cpu_die()
328 unsigned int cpu = smp_processor_id(); in arch_cpu_idle_dead() local
370 smp_ops.cpu_die(cpu); in arch_cpu_idle_dead()
373 cpu); in arch_cpu_idle_dead()
413 unsigned int cpu; in secondary_start_kernel() local
432 cpu = smp_processor_id(); in secondary_start_kernel()
435 cpumask_set_cpu(cpu, mm_cpumask(mm)); in secondary_start_kernel()
442 pr_debug("CPU%u: Booted secondary processor\n", cpu); in secondary_start_kernel()
450 smp_ops.smp_secondary_init(cpu); in secondary_start_kernel()
452 notify_cpu_starting(cpu); in secondary_start_kernel()
454 ipi_setup(cpu); in secondary_start_kernel()
458 smp_store_cpu_info(cpu); in secondary_start_kernel()
465 set_cpu_online(cpu, true); in secondary_start_kernel()
483 int cpu; in smp_cpus_done() local
486 for_each_online_cpu(cpu) in smp_cpus_done()
487 bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy; in smp_cpus_done()
548 unsigned int cpu, i; in show_ipi_list() local
556 for_each_online_cpu(cpu) in show_ipi_list()
557 seq_printf(p, "%10u ", irq_desc_kstat_cpu(ipi_desc[i], cpu)); in show_ipi_list()
573 void arch_send_call_function_single_ipi(int cpu) in arch_send_call_function_single_ipi() argument
575 smp_cross_call(cpumask_of(cpu), IPI_CALL_FUNC); in arch_send_call_function_single_ipi()
598 static void ipi_cpu_stop(unsigned int cpu) in ipi_cpu_stop() argument
602 pr_crit("CPU%u: stopping\n", cpu); in ipi_cpu_stop()
607 set_cpu_online(cpu, false); in ipi_cpu_stop()
620 int register_ipi_completion(struct completion *completion, int cpu) in register_ipi_completion() argument
622 per_cpu(cpu_completion, cpu) = completion; in register_ipi_completion()
626 static void ipi_complete(unsigned int cpu) in ipi_complete() argument
628 complete(per_cpu(cpu_completion, cpu)); in ipi_complete()
641 unsigned int cpu = smp_processor_id(); in do_handle_IPI() local
665 ipi_cpu_stop(cpu); in do_handle_IPI()
675 ipi_complete(cpu); in do_handle_IPI()
686 cpu, ipinr); in do_handle_IPI()
718 static void ipi_setup(int cpu) in ipi_setup() argument
753 void smp_send_reschedule(int cpu) in smp_send_reschedule() argument
755 smp_cross_call(cpumask_of(cpu), IPI_RESCHEDULE); in smp_send_reschedule()
812 int cpu, first = cpumask_first(cpus); in cpufreq_callback() local
819 for_each_cpu(cpu, cpus) { in cpufreq_callback()
820 per_cpu(l_p_j_ref, cpu) = in cpufreq_callback()
821 per_cpu(cpu_data, cpu).loops_per_jiffy; in cpufreq_callback()
822 per_cpu(l_p_j_ref_freq, cpu) = freq->old; in cpufreq_callback()
839 for_each_cpu(cpu, cpus) in cpufreq_callback()
840 per_cpu(cpu_data, cpu).loops_per_jiffy = lpj; in cpufreq_callback()