Lines Matching refs:cpu
43 int smpcfd_prepare_cpu(unsigned int cpu) in smpcfd_prepare_cpu() argument
45 struct call_function_data *cfd = &per_cpu(cfd_data, cpu); in smpcfd_prepare_cpu()
48 cpu_to_node(cpu))) in smpcfd_prepare_cpu()
51 cpu_to_node(cpu))) { in smpcfd_prepare_cpu()
65 int smpcfd_dead_cpu(unsigned int cpu) in smpcfd_dead_cpu() argument
67 struct call_function_data *cfd = &per_cpu(cfd_data, cpu); in smpcfd_dead_cpu()
75 int smpcfd_dying_cpu(unsigned int cpu) in smpcfd_dying_cpu() argument
142 static int generic_exec_single(int cpu, call_single_data_t *csd, in generic_exec_single() argument
145 if (cpu == smp_processor_id()) { in generic_exec_single()
160 if ((unsigned)cpu >= nr_cpu_ids || !cpu_online(cpu)) { in generic_exec_single()
179 if (llist_add(&csd->llist, &per_cpu(call_single_queue, cpu))) in generic_exec_single()
180 arch_send_call_function_single_ipi(cpu); in generic_exec_single()
269 int smp_call_function_single(int cpu, smp_call_func_t func, void *info, in smp_call_function_single() argument
308 err = generic_exec_single(cpu, csd, func, info); in smp_call_function_single()
335 int smp_call_function_single_async(int cpu, call_single_data_t *csd) in smp_call_function_single_async() argument
348 err = generic_exec_single(cpu, csd, csd->func, csd->info); in smp_call_function_single_async()
372 unsigned int cpu; in smp_call_function_any() local
377 cpu = get_cpu(); in smp_call_function_any()
378 if (cpumask_test_cpu(cpu, mask)) in smp_call_function_any()
382 nodemask = cpumask_of_node(cpu_to_node(cpu)); in smp_call_function_any()
383 for (cpu = cpumask_first_and(nodemask, mask); cpu < nr_cpu_ids; in smp_call_function_any()
384 cpu = cpumask_next_and(cpu, nodemask, mask)) { in smp_call_function_any()
385 if (cpu_online(cpu)) in smp_call_function_any()
390 cpu = cpumask_any_and(mask, cpu_online_mask); in smp_call_function_any()
392 ret = smp_call_function_single(cpu, func, info, wait); in smp_call_function_any()
416 int cpu, next_cpu, this_cpu = smp_processor_id(); in smp_call_function_many() local
436 cpu = cpumask_first_and(mask, cpu_online_mask); in smp_call_function_many()
437 if (cpu == this_cpu) in smp_call_function_many()
438 cpu = cpumask_next_and(cpu, mask, cpu_online_mask); in smp_call_function_many()
441 if (cpu >= nr_cpu_ids) in smp_call_function_many()
445 next_cpu = cpumask_next_and(cpu, mask, cpu_online_mask); in smp_call_function_many()
451 smp_call_function_single(cpu, func, info, wait); in smp_call_function_many()
465 for_each_cpu(cpu, cfd->cpumask) { in smp_call_function_many()
466 call_single_data_t *csd = per_cpu_ptr(cfd->csd, cpu); in smp_call_function_many()
473 if (llist_add(&csd->llist, &per_cpu(call_single_queue, cpu))) in smp_call_function_many()
474 __cpumask_set_cpu(cpu, cfd->cpumask_ipi); in smp_call_function_many()
481 for_each_cpu(cpu, cfd->cpumask) { in smp_call_function_many()
484 csd = per_cpu_ptr(cfd->csd, cpu); in smp_call_function_many()
581 unsigned int cpu; in smp_init() local
589 for_each_present_cpu(cpu) { in smp_init()
592 if (!cpu_online(cpu)) in smp_init()
593 cpu_up(cpu); in smp_init()
643 int cpu = get_cpu(); in on_each_cpu_mask() local
646 if (cpumask_test_cpu(cpu, mask)) { in on_each_cpu_mask()
683 void on_each_cpu_cond_mask(bool (*cond_func)(int cpu, void *info), in on_each_cpu_cond_mask() argument
688 int cpu, ret; in on_each_cpu_cond_mask() local
694 for_each_cpu(cpu, mask) in on_each_cpu_cond_mask()
695 if (cond_func(cpu, info)) in on_each_cpu_cond_mask()
696 __cpumask_set_cpu(cpu, cpus); in on_each_cpu_cond_mask()
706 for_each_cpu(cpu, mask) in on_each_cpu_cond_mask()
707 if (cond_func(cpu, info)) { in on_each_cpu_cond_mask()
708 ret = smp_call_function_single(cpu, func, in on_each_cpu_cond_mask()
717 void on_each_cpu_cond(bool (*cond_func)(int cpu, void *info), in on_each_cpu_cond() argument
757 int cpu; in wake_up_all_idle_cpus() local
760 for_each_online_cpu(cpu) { in wake_up_all_idle_cpus()
761 if (cpu == smp_processor_id()) in wake_up_all_idle_cpus()
764 wake_up_if_idle(cpu); in wake_up_all_idle_cpus()
783 int cpu; member
791 if (sscs->cpu >= 0) in smp_call_on_cpu_callback()
792 hypervisor_pin_vcpu(sscs->cpu); in smp_call_on_cpu_callback()
794 if (sscs->cpu >= 0) in smp_call_on_cpu_callback()
800 int smp_call_on_cpu(unsigned int cpu, int (*func)(void *), void *par, bool phys) in smp_call_on_cpu() argument
806 .cpu = phys ? cpu : -1, in smp_call_on_cpu()
811 if (cpu >= nr_cpu_ids || !cpu_online(cpu)) in smp_call_on_cpu()
814 queue_work_on(cpu, system_wq, &sscs.work); in smp_call_on_cpu()