Lines Matching refs:cpu
54 int smpcfd_prepare_cpu(unsigned int cpu) in smpcfd_prepare_cpu() argument
56 struct call_function_data *cfd = &per_cpu(cfd_data, cpu); in smpcfd_prepare_cpu()
59 cpu_to_node(cpu))) in smpcfd_prepare_cpu()
62 cpu_to_node(cpu))) { in smpcfd_prepare_cpu()
76 int smpcfd_dead_cpu(unsigned int cpu) in smpcfd_dead_cpu() argument
78 struct call_function_data *cfd = &per_cpu(cfd_data, cpu); in smpcfd_dead_cpu()
86 int smpcfd_dying_cpu(unsigned int cpu) in smpcfd_dying_cpu() argument
115 send_call_function_single_ipi(int cpu) in send_call_function_single_ipi() argument
117 if (call_function_single_prep_ipi(cpu)) { in send_call_function_single_ipi()
118 trace_ipi_send_cpu(cpu, _RET_IP_, in send_call_function_single_ipi()
120 arch_send_call_function_single_ipi(cpu); in send_call_function_single_ipi()
233 int cpu = -1; in csd_lock_wait_toolong() local
244 cpu = csd_lock_wait_getcpu(csd); in csd_lock_wait_toolong()
246 *bug_id, raw_smp_processor_id(), cpu); in csd_lock_wait_toolong()
270 cpu = csd_lock_wait_getcpu(csd); in csd_lock_wait_toolong()
271 if (WARN_ONCE(cpu < 0 || cpu >= nr_cpu_ids, "%s: cpu = %d\n", __func__, cpu)) in csd_lock_wait_toolong()
274 cpux = cpu; in csd_lock_wait_toolong()
280 cpu, csd->func, csd->info); in csd_lock_wait_toolong()
298 if (cpu >= 0) { in csd_lock_wait_toolong()
299 if (atomic_cmpxchg_acquire(&per_cpu(trigger_backtrace, cpu), 1, 0)) in csd_lock_wait_toolong()
300 dump_cpu_task(cpu); in csd_lock_wait_toolong()
302 … Re-sending CSD lock (#%d) IPI from CPU#%02d to CPU#%02d\n", *bug_id, raw_smp_processor_id(), cpu); in csd_lock_wait_toolong()
303 arch_send_call_function_single_ipi(cpu); in csd_lock_wait_toolong()
380 void __smp_call_single_queue(int cpu, struct llist_node *node) in __smp_call_single_queue() argument
397 trace_csd_queue_cpu(cpu, _RET_IP_, func, csd); in __smp_call_single_queue()
412 if (llist_add(node, &per_cpu(call_single_queue, cpu))) in __smp_call_single_queue()
413 send_call_function_single_ipi(cpu); in __smp_call_single_queue()
421 static int generic_exec_single(int cpu, call_single_data_t *csd) in generic_exec_single() argument
427 if (cpu == smp_processor_id()) { in generic_exec_single()
445 if ((unsigned)cpu >= nr_cpu_ids || !cpu_online(cpu)) { in generic_exec_single()
450 __smp_call_single_queue(cpu, &csd->node.llist); in generic_exec_single()
636 int smp_call_function_single(int cpu, smp_call_func_t func, void *info, in smp_call_function_single() argument
681 csd->node.dst = cpu; in smp_call_function_single()
684 err = generic_exec_single(cpu, csd); in smp_call_function_single()
718 int smp_call_function_single_async(int cpu, call_single_data_t *csd) in smp_call_function_single_async() argument
732 err = generic_exec_single(cpu, csd); in smp_call_function_single_async()
757 unsigned int cpu; in smp_call_function_any() local
761 cpu = get_cpu(); in smp_call_function_any()
762 if (!cpumask_test_cpu(cpu, mask)) in smp_call_function_any()
763 cpu = sched_numa_find_nth_cpu(mask, 0, cpu_to_node(cpu)); in smp_call_function_any()
765 ret = smp_call_function_single(cpu, func, info, wait); in smp_call_function_any()
785 int cpu, last_cpu, this_cpu = smp_processor_id(); in smp_call_function_many_cond() local
818 for_each_cpu(cpu, cfd->cpumask) { in smp_call_function_many_cond()
819 call_single_data_t *csd = per_cpu_ptr(cfd->csd, cpu); in smp_call_function_many_cond()
821 if (cond_func && !cond_func(cpu, info)) { in smp_call_function_many_cond()
822 __cpumask_clear_cpu(cpu, cfd->cpumask); in smp_call_function_many_cond()
836 csd->node.dst = cpu; in smp_call_function_many_cond()
838 trace_csd_queue_cpu(cpu, _RET_IP_, func, csd); in smp_call_function_many_cond()
844 if (llist_add(&csd->node.llist, &per_cpu(call_single_queue, cpu))) { in smp_call_function_many_cond()
845 __cpumask_set_cpu(cpu, cfd->cpumask_ipi); in smp_call_function_many_cond()
847 last_cpu = cpu; in smp_call_function_many_cond()
873 for_each_cpu(cpu, cfd->cpumask) { in smp_call_function_many_cond()
876 csd = per_cpu_ptr(cfd->csd, cpu); in smp_call_function_many_cond()
1080 int cpu; in wake_up_all_idle_cpus() local
1082 for_each_possible_cpu(cpu) { in wake_up_all_idle_cpus()
1084 if (cpu != smp_processor_id() && cpu_online(cpu)) in wake_up_all_idle_cpus()
1085 wake_up_if_idle(cpu); in wake_up_all_idle_cpus()
1110 int cpu; member
1118 if (sscs->cpu >= 0) in smp_call_on_cpu_callback()
1119 hypervisor_pin_vcpu(sscs->cpu); in smp_call_on_cpu_callback()
1121 if (sscs->cpu >= 0) in smp_call_on_cpu_callback()
1127 int smp_call_on_cpu(unsigned int cpu, int (*func)(void *), void *par, bool phys) in smp_call_on_cpu() argument
1133 .cpu = phys ? cpu : -1, in smp_call_on_cpu()
1138 if (cpu >= nr_cpu_ids || !cpu_online(cpu)) in smp_call_on_cpu()
1141 queue_work_on(cpu, system_wq, &sscs.work); in smp_call_on_cpu()