Lines Matching +full:ecx +full:- +full:1000

1 // SPDX-License-Identifier: GPL-2.0-or-later
13 * Pentium Pro and Pentium-II/Xeon MP machines.
19 * Alan Cox : By repeated request 8) - Total BogoMIPS report.
32 * Martin J. Bligh : Added support for multi-quad systems
79 #include <asm/intel-family.h>
81 #include <asm/spec-ctrl.h>
266 * topology_is_primary_thread - Check whether CPU is the primary SMT thread
275 * topology_smt_supported - Check whether SMT is supported by the CPUs
283 * topology_phys_to_logical_pkg - Map a physical package id to a logical
285 * Returns logical package id or -1 if not found
294 if (c->initialized && c->phys_proc_id == phys_pkg) in topology_phys_to_logical_pkg()
295 return c->logical_proc_id; in topology_phys_to_logical_pkg()
297 return -1; in topology_phys_to_logical_pkg()
301 * topology_phys_to_logical_die - Map a physical die id to logical
303 * Returns logical die id or -1 if not found
313 if (c->initialized && c->cpu_die_id == die_id && in topology_phys_to_logical_die()
314 c->phys_proc_id == proc_id) in topology_phys_to_logical_die()
315 return c->logical_die_id; in topology_phys_to_logical_die()
317 return -1; in topology_phys_to_logical_die()
322 * topology_update_package_map - Update the physical to logical package map
345 * topology_update_die_map - Update the physical to logical die map
374 c->cpu_index = id; in smp_store_boot_cpu_info()
375 topology_update_package_map(c->phys_proc_id, id); in smp_store_boot_cpu_info()
376 topology_update_die_map(c->cpu_die_id, id); in smp_store_boot_cpu_info()
377 c->initialized = true; in smp_store_boot_cpu_info()
389 if (!c->initialized) in smp_store_cpu_info()
391 c->cpu_index = id; in smp_store_cpu_info()
397 c->initialized = true; in smp_store_cpu_info()
403 int cpu1 = c->cpu_index, cpu2 = o->cpu_index; in topology_same_node()
411 int cpu1 = c->cpu_index, cpu2 = o->cpu_index; in topology_sane()
414 "sched: CPU #%d's %s-sibling CPU #%d is not on the same node! " in topology_sane()
428 int cpu1 = c->cpu_index, cpu2 = o->cpu_index; in match_smt()
430 if (c->phys_proc_id == o->phys_proc_id && in match_smt()
431 c->cpu_die_id == o->cpu_die_id && in match_smt()
433 if (c->cpu_core_id == o->cpu_core_id) in match_smt()
436 if ((c->cu_id != 0xff) && in match_smt()
437 (o->cu_id != 0xff) && in match_smt()
438 (c->cu_id == o->cu_id)) in match_smt()
442 } else if (c->phys_proc_id == o->phys_proc_id && in match_smt()
443 c->cpu_die_id == o->cpu_die_id && in match_smt()
444 c->cpu_core_id == o->cpu_core_id) { in match_smt()
453 if (c->phys_proc_id == o->phys_proc_id && in match_die()
454 c->cpu_die_id == o->cpu_die_id) in match_die()
461 int cpu1 = c->cpu_index, cpu2 = o->cpu_index; in match_l2c()
481 if (c->phys_proc_id == o->phys_proc_id) in match_pkg()
487 * Define intel_cod_cpu[] for Intel COD (Cluster-on-Die) CPUs.
490 * match intel_cod_cpu[] has the SNC (Sub-NUMA Cluster) topology.
493 * by multiple NUMA nodes. The LLC is shared for off-package data
495 * on-package access. CPUID (the source of the information about
510 int cpu1 = c->cpu_index, cpu2 = o->cpu_index; in match_llc()
511 bool intel_snc = id && id->driver_data; in match_llc()
599 * AMD Magny-Cours, Intel Cluster-on-Die, and Intel
600 * Sub-NUMA Clustering have this.
620 c->booted_cores = 1; in set_cpu_sibling_map()
652 * topology_sibling_cpumask links to be set-up. in set_cpu_sibling_map()
670 c->booted_cores++; in set_cpu_sibling_map()
677 } else if (i != cpu && !c->booted_cores) in set_cpu_sibling_map()
678 c->booted_cores = cpu_data(i).booted_cores; in set_cpu_sibling_map()
683 /* maps the cpu to the sched domain representing multi-core */
710 pr_debug("Before bogocount - setting activated=1\n"); in impress_friends()
738 } while (status == APIC_ICR_RR_INPROG && timeout++ < 1000); in __inquire_remote_apic()
754 * and de-asserting INIT, when starting a remote processor.
758 * Cmdline "init_cpu_udelay=" is available to over-ride this delay.
798 u32 dm = apic->dest_mode_logical ? APIC_DEST_LOGICAL : APIC_DEST_PHYSICAL; in wakeup_secondary_cpu_via_nmi()
962 if (current_node > (-1)) in announce_cpu()
967 node_width - num_digits(node), " ", node); in announce_cpu()
974 pr_cont("%*s#%d", width - num_digits(cpu), " ", cpu); in announce_cpu()
996 * boot-strap code which is not a desired behavior for waking up BSP. To
997 * void the boot-strap code, wake up CPU0 by NMI instead.
1032 id = apic->dest_mode_logical ? cpu0_logical_apicid : apicid; in wakeup_cpu_via_init_nmi()
1067 * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
1070 * ->wakeup_secondary_cpu.
1075 /* start_ip had better be page-aligned! */ in do_boot_cpu()
1076 unsigned long start_ip = real_mode_header->trampoline_start; in do_boot_cpu()
1082 /* If 64-bit wakeup method exists, use the 64-bit mode trampoline IP */ in do_boot_cpu()
1083 if (apic->wakeup_secondary_cpu_64) in do_boot_cpu()
1084 start_ip = real_mode_header->trampoline_start64; in do_boot_cpu()
1086 idle->thread.sp = (unsigned long)task_pt_regs(idle); in do_boot_cpu()
1089 initial_stack = idle->thread.sp; in do_boot_cpu()
1119 * it timed-out. Clear cpu_initialized_mask so that after in do_boot_cpu()
1127 * - Use a method from the APIC driver if one defined, with wakeup in do_boot_cpu()
1128 * straight to 64-bit mode preferred over wakeup to RM. in do_boot_cpu()
1130 * - Use an INIT boot APIC message for APs or NMI for BSP. in do_boot_cpu()
1132 if (apic->wakeup_secondary_cpu_64) in do_boot_cpu()
1133 boot_error = apic->wakeup_secondary_cpu_64(apicid, start_ip); in do_boot_cpu()
1134 else if (apic->wakeup_secondary_cpu) in do_boot_cpu()
1135 boot_error = apic->wakeup_secondary_cpu(apicid, start_ip); in do_boot_cpu()
1144 boot_error = -1; in do_boot_cpu()
1186 int apicid = apic->cpu_present_to_apicid(cpu); in native_cpu_up()
1193 pr_debug("++++++++++++++++++++=_---CPU UP %u\n", cpu); in native_cpu_up()
1197 !apic->apic_id_valid(apicid)) { in native_cpu_up()
1199 return -EINVAL; in native_cpu_up()
1207 return -ENOSYS; in native_cpu_up()
1218 if (err && err != -EBUSY) in native_cpu_up()
1231 ret = -EIO; in native_cpu_up()
1260 * arch_disable_smp_support() - disables SMP support for x86 at runtime
1270 * RED-PEN audit/test this more. I bet there is more state messed up here.
1302 pr_warn("More than 8 CPUs detected - skipping them\n" in smp_sanity_check()
1334 if (!apic->check_phys_apicid_present(boot_cpu_physical_apicid)) { in smp_sanity_check()
1350 c->cpu_index = nr_cpu_ids; in smp_cpu_index_default()
1482 /* XXX for now assume numa-in-package and hybrid don't overlap */ in native_smp_cpus_done()
1493 static int __initdata setup_possible_cpus = -1;
1504 * are onlined, or offlined. The reason is per-cpu data-structures
1510 * - Ashok Raj
1513 * - If the BIOS specified disabled CPUs in ACPI/mptables use that.
1514 * - The user can overwrite it with possible_cpus=NUM
1515 * - Otherwise don't reserve additional CPUs.
1517 * -AK
1532 if (apic->cpu_present_to_apicid(0) == BAD_APICID && in prefill_possible_map()
1533 apic->apic_id_valid(apicid)) in prefill_possible_map()
1542 if (setup_possible_cpus == -1) { in prefill_possible_map()
1575 possible, max_t(int, possible - num_processors, 0)); in prefill_possible_map()
1611 cpu_data(sibling).booted_cores--; in remove_siblinginfo()
1632 c->cpu_core_id = 0; in remove_siblinginfo()
1633 c->booted_cores = 0; in remove_siblinginfo()
1707 ret = -1; in common_cpu_die()
1732 * cond_wakeup_cpu0 - Wake up CPU0 if needed.
1749 unsigned int eax, ebx, ecx, edx; in mwait_play_dead() local
1766 ecx = 0; in mwait_play_dead()
1767 native_cpuid(&eax, &ebx, &ecx, &edx); in mwait_play_dead()
1773 if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED)) { in mwait_play_dead()
1784 (highest_subcstate - 1); in mwait_play_dead()
1792 mwait_ptr = &current_thread_info()->flags; in mwait_play_dead()
1801 * The WBINVD is insufficient due to the spurious-wakeup in mwait_play_dead()
1840 return -ENOSYS; in native_cpu_disable()