Lines Matching refs:cpu

518 void set_cpu_sibling_map(int cpu)  in set_cpu_sibling_map()  argument
522 struct cpuinfo_x86 *c = &cpu_data(cpu); in set_cpu_sibling_map()
526 cpumask_set_cpu(cpu, cpu_sibling_setup_mask); in set_cpu_sibling_map()
529 cpumask_set_cpu(cpu, topology_sibling_cpumask(cpu)); in set_cpu_sibling_map()
530 cpumask_set_cpu(cpu, cpu_llc_shared_mask(cpu)); in set_cpu_sibling_map()
531 cpumask_set_cpu(cpu, cpu_l2c_shared_mask(cpu)); in set_cpu_sibling_map()
532 cpumask_set_cpu(cpu, topology_core_cpumask(cpu)); in set_cpu_sibling_map()
533 cpumask_set_cpu(cpu, topology_die_cpumask(cpu)); in set_cpu_sibling_map()
544 if ((i == cpu) || (has_smt && match_smt(c, o))) in set_cpu_sibling_map()
545 link_mask(topology_sibling_cpumask, cpu, i); in set_cpu_sibling_map()
547 if ((i == cpu) || (has_mp && match_llc(c, o))) in set_cpu_sibling_map()
548 link_mask(cpu_llc_shared_mask, cpu, i); in set_cpu_sibling_map()
550 if ((i == cpu) || (has_mp && match_l2c(c, o))) in set_cpu_sibling_map()
551 link_mask(cpu_l2c_shared_mask, cpu, i); in set_cpu_sibling_map()
553 if ((i == cpu) || (has_mp && match_die(c, o))) in set_cpu_sibling_map()
554 link_mask(topology_die_cpumask, cpu, i); in set_cpu_sibling_map()
557 threads = cpumask_weight(topology_sibling_cpumask(cpu)); in set_cpu_sibling_map()
561 for_each_cpu(i, topology_sibling_cpumask(cpu)) in set_cpu_sibling_map()
571 if ((i == cpu) || (has_mp && match_pkg(c, o))) { in set_cpu_sibling_map()
572 link_mask(topology_core_cpumask, cpu, i); in set_cpu_sibling_map()
589 if (i != cpu) in set_cpu_sibling_map()
591 } else if (i != cpu && !c->booted_cores) in set_cpu_sibling_map()
598 const struct cpumask *cpu_coregroup_mask(int cpu) in cpu_coregroup_mask() argument
600 return cpu_llc_shared_mask(cpu); in cpu_coregroup_mask()
603 const struct cpumask *cpu_clustergroup_mask(int cpu) in cpu_clustergroup_mask() argument
605 return cpu_l2c_shared_mask(cpu); in cpu_clustergroup_mask()
611 int cpu; in impress_friends() local
617 for_each_online_cpu(cpu) in impress_friends()
618 bogosum += cpu_data(cpu).loops_per_jiffy; in impress_friends()
695 static int wakeup_secondary_cpu_via_init(u32 phys_apicid, unsigned long start_eip, unsigned int cpu) in wakeup_secondary_cpu_via_init() argument
778 static void announce_cpu(int cpu, int apicid) in announce_cpu() argument
782 int node = early_cpu_to_node(cpu); in announce_cpu()
808 pr_cont("%*s#%d", width - num_digits(cpu), " ", cpu); in announce_cpu()
811 node, cpu, apicid); in announce_cpu()
814 int common_cpu_up(unsigned int cpu, struct task_struct *idle) in common_cpu_up() argument
821 per_cpu(current_task, cpu) = idle; in common_cpu_up()
822 cpu_init_stack_canary(cpu, idle); in common_cpu_up()
825 ret = irq_init_percpu_irqstack(cpu); in common_cpu_up()
831 per_cpu(cpu_current_top_of_stack, cpu) = task_top_of_stack(idle); in common_cpu_up()
842 static int do_boot_cpu(u32 apicid, unsigned int cpu, struct task_struct *idle) in do_boot_cpu() argument
856 early_gdt_descr.address = (unsigned long)get_cpu_gdt_rw(cpu); in do_boot_cpu()
859 smpboot_control = cpu; in do_boot_cpu()
863 init_espfix_ap(cpu); in do_boot_cpu()
866 announce_cpu(cpu, apicid); in do_boot_cpu()
896 ret = apic->wakeup_secondary_cpu_64(apicid, start_ip, cpu); in do_boot_cpu()
898 ret = apic->wakeup_secondary_cpu(apicid, start_ip, cpu); in do_boot_cpu()
900 ret = wakeup_secondary_cpu_via_init(apicid, start_ip, cpu); in do_boot_cpu()
904 arch_cpuhp_cleanup_kick_cpu(cpu); in do_boot_cpu()
908 int native_kick_ap(unsigned int cpu, struct task_struct *tidle) in native_kick_ap() argument
910 u32 apicid = apic->cpu_present_to_apicid(cpu); in native_kick_ap()
915 pr_debug("++++++++++++++++++++=_---CPU UP %u\n", cpu); in native_kick_ap()
918 pr_err("CPU %u has invalid APIC ID %x. Aborting bringup\n", cpu, apicid); in native_kick_ap()
923 pr_err("CPU %u APIC ID %x is not present. Aborting bringup\n", cpu, apicid); in native_kick_ap()
934 per_cpu(fpu_fpregs_owner_ctx, cpu) = NULL; in native_kick_ap()
936 err = common_cpu_up(cpu, tidle); in native_kick_ap()
940 err = do_boot_cpu(apicid, cpu, tidle); in native_kick_ap()
942 pr_err("do_boot_cpu failed(%d) to wakeup CPU#%u\n", err, cpu); in native_kick_ap()
947 int arch_cpuhp_kick_ap_alive(unsigned int cpu, struct task_struct *tidle) in arch_cpuhp_kick_ap_alive() argument
949 return smp_ops.kick_ap_alive(cpu, tidle); in arch_cpuhp_kick_ap_alive()
952 void arch_cpuhp_cleanup_kick_cpu(unsigned int cpu) in arch_cpuhp_cleanup_kick_cpu() argument
959 void arch_cpuhp_cleanup_dead_cpu(unsigned int cpu) in arch_cpuhp_cleanup_dead_cpu() argument
962 smp_ops.cleanup_dead_cpu(cpu); in arch_cpuhp_cleanup_dead_cpu()
965 pr_info("CPU %u is now offline\n", cpu); in arch_cpuhp_cleanup_dead_cpu()
1001 unsigned int cpu, node; in smp_prepare_cpus_common() local
1004 for_each_possible_cpu(cpu) { in smp_prepare_cpus_common()
1005 if (cpu) in smp_prepare_cpus_common()
1006 per_cpu(cpu_info.cpu_index, cpu) = nr_cpu_ids; in smp_prepare_cpus_common()
1009 for_each_possible_cpu(cpu) { in smp_prepare_cpus_common()
1010 node = cpu_to_node(cpu); in smp_prepare_cpus_common()
1012 zalloc_cpumask_var_node(&per_cpu(cpu_sibling_map, cpu), GFP_KERNEL, node); in smp_prepare_cpus_common()
1013 zalloc_cpumask_var_node(&per_cpu(cpu_core_map, cpu), GFP_KERNEL, node); in smp_prepare_cpus_common()
1014 zalloc_cpumask_var_node(&per_cpu(cpu_die_map, cpu), GFP_KERNEL, node); in smp_prepare_cpus_common()
1015 zalloc_cpumask_var_node(&per_cpu(cpu_llc_shared_map, cpu), GFP_KERNEL, node); in smp_prepare_cpus_common()
1016 zalloc_cpumask_var_node(&per_cpu(cpu_l2c_shared_map, cpu), GFP_KERNEL, node); in smp_prepare_cpus_common()
1126 int max_threads, cpu; in recompute_smt_state() local
1129 for_each_online_cpu (cpu) { in recompute_smt_state()
1130 int threads = cpumask_weight(topology_sibling_cpumask(cpu)); in recompute_smt_state()
1138 static void remove_siblinginfo(int cpu) in remove_siblinginfo() argument
1141 struct cpuinfo_x86 *c = &cpu_data(cpu); in remove_siblinginfo()
1143 for_each_cpu(sibling, topology_core_cpumask(cpu)) { in remove_siblinginfo()
1144 cpumask_clear_cpu(cpu, topology_core_cpumask(sibling)); in remove_siblinginfo()
1148 if (cpumask_weight(topology_sibling_cpumask(cpu)) == 1) in remove_siblinginfo()
1152 for_each_cpu(sibling, topology_die_cpumask(cpu)) in remove_siblinginfo()
1153 cpumask_clear_cpu(cpu, topology_die_cpumask(sibling)); in remove_siblinginfo()
1155 for_each_cpu(sibling, topology_sibling_cpumask(cpu)) { in remove_siblinginfo()
1156 cpumask_clear_cpu(cpu, topology_sibling_cpumask(sibling)); in remove_siblinginfo()
1161 for_each_cpu(sibling, cpu_llc_shared_mask(cpu)) in remove_siblinginfo()
1162 cpumask_clear_cpu(cpu, cpu_llc_shared_mask(sibling)); in remove_siblinginfo()
1163 for_each_cpu(sibling, cpu_l2c_shared_mask(cpu)) in remove_siblinginfo()
1164 cpumask_clear_cpu(cpu, cpu_l2c_shared_mask(sibling)); in remove_siblinginfo()
1165 cpumask_clear(cpu_llc_shared_mask(cpu)); in remove_siblinginfo()
1166 cpumask_clear(cpu_l2c_shared_mask(cpu)); in remove_siblinginfo()
1167 cpumask_clear(topology_sibling_cpumask(cpu)); in remove_siblinginfo()
1168 cpumask_clear(topology_core_cpumask(cpu)); in remove_siblinginfo()
1169 cpumask_clear(topology_die_cpumask(cpu)); in remove_siblinginfo()
1172 cpumask_clear_cpu(cpu, cpu_sibling_setup_mask); in remove_siblinginfo()
1176 static void remove_cpu_from_maps(int cpu) in remove_cpu_from_maps() argument
1178 set_cpu_online(cpu, false); in remove_cpu_from_maps()
1179 numa_remove_cpu(cpu); in remove_cpu_from_maps()
1184 int cpu = smp_processor_id(); in cpu_disable_common() local
1186 remove_siblinginfo(cpu); in cpu_disable_common()
1196 remove_cpu_from_maps(cpu); in cpu_disable_common()
1301 unsigned int cpu, i; in smp_kick_mwait_play_dead() local
1303 for_each_cpu_andnot(cpu, cpu_present_mask, cpu_online_mask) { in smp_kick_mwait_play_dead()
1304 md = per_cpu_ptr(&mwait_cpu_dead, cpu); in smp_kick_mwait_play_dead()
1318 pr_err_once("CPU%u is stuck in mwait_play_dead()\n", cpu); in smp_kick_mwait_play_dead()