/Linux-v6.6/arch/riscv/kernel/ |
D | smpboot.c | 49 int cpuid; in smp_prepare_cpus() local 64 for_each_possible_cpu(cpuid) { in smp_prepare_cpus() 65 if (cpuid == curr_cpuid) in smp_prepare_cpus() 67 if (cpu_ops[cpuid]->cpu_prepare) { in smp_prepare_cpus() 68 ret = cpu_ops[cpuid]->cpu_prepare(cpuid); in smp_prepare_cpus() 72 set_cpu_present(cpuid, true); in smp_prepare_cpus() 73 numa_store_cpu_info(cpuid); in smp_prepare_cpus() 126 int cpuid; in acpi_parse_and_init_cpus() local 132 for (cpuid = 1; cpuid < nr_cpu_ids; cpuid++) { in acpi_parse_and_init_cpus() 133 if (cpuid_to_hartid_map(cpuid) != INVALID_HARTID) { in acpi_parse_and_init_cpus() [all …]
|
D | cpu_ops_sbi.c | 65 static int sbi_cpu_start(unsigned int cpuid, struct task_struct *tidle) in sbi_cpu_start() argument 68 unsigned long hartid = cpuid_to_hartid_map(cpuid); in sbi_cpu_start() 70 struct sbi_hart_boot_data *bdata = &per_cpu(boot_data, cpuid); in sbi_cpu_start() 82 static int sbi_cpu_prepare(unsigned int cpuid) in sbi_cpu_prepare() argument 85 pr_err("cpu start method not defined for CPU [%d]\n", cpuid); in sbi_cpu_prepare() 92 static int sbi_cpu_disable(unsigned int cpuid) in sbi_cpu_disable() argument 107 static int sbi_cpu_is_stopped(unsigned int cpuid) in sbi_cpu_is_stopped() argument 110 unsigned long hartid = cpuid_to_hartid_map(cpuid); in sbi_cpu_is_stopped()
|
D | cpu_ops_spinwait.c | 20 static void cpu_update_secondary_bootdata(unsigned int cpuid, in cpu_update_secondary_bootdata() argument 23 unsigned long hartid = cpuid_to_hartid_map(cpuid); in cpu_update_secondary_bootdata() 42 static int spinwait_cpu_prepare(unsigned int cpuid) in spinwait_cpu_prepare() argument 45 pr_err("cpu start method not defined for CPU [%d]\n", cpuid); in spinwait_cpu_prepare() 51 static int spinwait_cpu_start(unsigned int cpuid, struct task_struct *tidle) in spinwait_cpu_start() argument 61 cpu_update_secondary_bootdata(cpuid, tidle); in spinwait_cpu_start()
|
/Linux-v6.6/tools/testing/selftests/kvm/x86_64/ |
D | cpuid_test.c | 5 * Generic tests for KVM CPUID set/get ioctls 79 "CPUID nent mismatch: %d vs. %d", cpuid1->nent, cpuid2->nent); in compare_cpuids() 87 "CPUID entries[%d] mismtach: 0x%x.%d.%x vs. 0x%x.%d.%x\n", in compare_cpuids() 96 "CPUID 0x%x.%x differ: 0x%x:0x%x:0x%x:0x%x vs 0x%x:0x%x:0x%x:0x%x", in compare_cpuids() 126 struct kvm_cpuid2 *vcpu_alloc_cpuid(struct kvm_vm *vm, vm_vaddr_t *p_gva, struct kvm_cpuid2 *cpuid) in vcpu_alloc_cpuid() argument 128 int size = sizeof(*cpuid) + cpuid->nent * sizeof(cpuid->entries[0]); in vcpu_alloc_cpuid() 132 memcpy(guest_cpuids, cpuid, size); in vcpu_alloc_cpuid() 144 /* Setting unmodified CPUID is allowed */ in set_cpuid_after_run() 146 TEST_ASSERT(!rc, "Setting unmodified CPUID after KVM_RUN failed: %d", rc); in set_cpuid_after_run() 168 struct kvm_cpuid2 *cpuid = allocate_kvm_cpuid2(vcpu->cpuid->nent + 1); in test_get_cpuid2() local [all …]
|
/Linux-v6.6/arch/sparc/kernel/ |
D | prom_64.c | 389 * 'portid', or 'cpuid' property. in arch_find_n_match_cpu_physical_id() 406 mid_prop = "cpuid"; in arch_find_n_match_cpu_physical_id() 441 int cpuid = of_getintprop_default(dp, mid_prop, -1); in of_iterate_over_cpus() local 445 if (cpuid < 0) { in of_iterate_over_cpus() 446 this_mid_prop = "cpuid"; in of_iterate_over_cpus() 447 cpuid = of_getintprop_default(dp, this_mid_prop, -1); in of_iterate_over_cpus() 449 if (cpuid < 0) { in of_iterate_over_cpus() 455 if (cpuid >= NR_CPUS) { in of_iterate_over_cpus() 458 cpuid, NR_CPUS); in of_iterate_over_cpus() 462 ret = func(dp, cpuid, arg); in of_iterate_over_cpus() [all …]
|
D | sun4d_smp.c | 45 static inline void show_leds(int cpuid) in show_leds() argument 47 cpuid &= 0x1e; in show_leds() 49 "r" ((cpu_leds[cpuid] << 4) | cpu_leds[cpuid+1]), in show_leds() 50 "r" (ECSR_BASE(cpuid) | BB_LEDS), in show_leds() 56 int cpuid = hard_smp_processor_id(); in sun4d_cpu_pre_starting() local 59 cpu_leds[cpuid] = 0x6; in sun4d_cpu_pre_starting() 60 show_leds(cpuid); in sun4d_cpu_pre_starting() 69 int cpuid; in sun4d_cpu_pre_online() local 71 cpuid = hard_smp_processor_id(); in sun4d_cpu_pre_online() 78 sun4d_swap((unsigned long *)&cpu_callin_map[cpuid], 1); in sun4d_cpu_pre_online() [all …]
|
D | sun4d_irq.c | 33 unsigned int cpuid; /* target cpu */ member 195 int cpuid = handler_data->cpuid; in sun4d_mask_irq() local 201 cc_set_imsk_other(cpuid, cc_get_imsk_other(cpuid) | (1 << real_irq)); in sun4d_mask_irq() 213 int cpuid = handler_data->cpuid; in sun4d_unmask_irq() local 220 cc_set_imsk_other(cpuid, cc_get_imsk_other(cpuid) & ~(1 << real_irq)); in sun4d_unmask_irq() 254 int cpuid = cpu_logical_map(1); in sun4d_distribute_irqs() local 256 if (cpuid == -1) in sun4d_distribute_irqs() 257 cpuid = cpu_logical_map(0); in sun4d_distribute_irqs() 261 board_to_cpu[board] = cpuid; in sun4d_distribute_irqs() 262 set_sbi_tid(devid, cpuid << 3); in sun4d_distribute_irqs() [all …]
|
D | smp_32.c | 179 int i, cpuid, extra; in smp_prepare_cpus() local 184 for (i = 0; !cpu_find_by_instance(i, NULL, &cpuid); i++) { in smp_prepare_cpus() 185 if (cpuid >= NR_CPUS) in smp_prepare_cpus() 239 int cpuid = hard_smp_processor_id(); in smp_prepare_boot_cpu() local 241 if (cpuid >= NR_CPUS) { in smp_prepare_boot_cpu() 245 if (cpuid != 0) in smp_prepare_boot_cpu() 248 current_thread_info()->cpu = cpuid; in smp_prepare_boot_cpu() 249 set_cpu_online(cpuid, true); in smp_prepare_boot_cpu() 250 set_cpu_possible(cpuid, true); in smp_prepare_boot_cpu() 311 unsigned int cpuid = hard_smp_processor_id(); in arch_cpu_pre_online() local [all …]
|
/Linux-v6.6/lib/zstd/common/ |
D | cpu.h | 15 * Implementation taken from folly/CpuId.h 16 * https://github.com/facebook/folly/blob/master/folly/CpuId.h 35 /* The following block like the normal cpuid branch below, but gcc in ZSTD_cpuid() 42 "cpuid\n\t" in ZSTD_cpuid() 51 "cpuid\n\t" in ZSTD_cpuid() 59 "cpuid\n\t" in ZSTD_cpuid() 68 __asm__("cpuid" : "=a"(n) : "a"(0) : "ebx", "ecx", "edx"); in ZSTD_cpuid() 71 __asm__("cpuid" : "=a"(f1a), "=c"(f1c), "=d"(f1d) : "a"(1) : "ebx"); in ZSTD_cpuid() 75 __asm__("cpuid" in ZSTD_cpuid() 82 ZSTD_cpuid_t cpuid; in ZSTD_cpuid() local [all …]
|
/Linux-v6.6/arch/parisc/kernel/ |
D | topology.c | 28 void store_cpu_topology(unsigned int cpuid) in store_cpu_topology() argument 30 struct cpu_topology *cpuid_topo = &cpu_topology[cpuid]; in store_cpu_topology() 40 per_cpu(cpu_devices, cpuid).hotpluggable = 1; in store_cpu_topology() 42 if (register_cpu(&per_cpu(cpu_devices, cpuid), cpuid)) in store_cpu_topology() 43 pr_warn("Failed to register CPU%d device", cpuid); in store_cpu_topology() 49 p = &per_cpu(cpu_data, cpuid); in store_cpu_topology() 53 if (cpu == cpuid) /* ignore current cpu */ in store_cpu_topology() 72 update_siblings_masks(cpuid); in store_cpu_topology() 75 cpuid, in store_cpu_topology() 76 cpu_topology[cpuid].core_id, in store_cpu_topology() [all …]
|
D | processor.c | 84 unsigned long cpuid; in processor_probe() local 103 cpuid = boot_cpu_data.cpu_count; in processor_probe() 105 cpu_info.cpu_num = cpu_info.cpu_loc = cpuid; in processor_probe() 136 cpuid, cpu_info.cpu_num, cpu_info.cpu_loc, in processor_probe() 141 /* We need contiguous numbers for cpuid. Firmware's notion in processor_probe() 142 * of cpuid is for physical CPUs and we just don't care yet. in processor_probe() 155 cpuid = cpu_info.cpu_num; in processor_probe() 161 p = &per_cpu(cpu_data, cpuid); in processor_probe() 165 if (cpuid) in processor_probe() 170 p->cpuid = cpuid; /* save CPU id */ in processor_probe() [all …]
|
/Linux-v6.6/tools/perf/pmu-events/ |
D | empty-pmu-events.c | 198 * cpuid field, which is an arch-specific identifier for the CPU. 202 * The cpuid can contain any character other than the comma. 206 const char *cpuid; member 218 .cpuid = "testcpu", 224 .cpuid = 0, 330 char *cpuid = perf_pmu__getcpuid(pmu); in perf_pmu__find_events_table() local 333 /* on some platforms which uses cpus map, cpuid can be NULL for in perf_pmu__find_events_table() 336 if (!cpuid) in perf_pmu__find_events_table() 343 if (!map->cpuid) in perf_pmu__find_events_table() 346 if (!strcmp_cpuid_str(map->cpuid, cpuid)) { in perf_pmu__find_events_table() [all …]
|
/Linux-v6.6/arch/x86/boot/compressed/ |
D | mem_encrypt.S | 23 movl $0x80000000, %eax /* CPUID to check the highest leaf */ 24 cpuid 30 * CPUID Fn8000_001F[EAX] - Bit 1 31 * CPUID Fn8000_001F[EBX] - Bits 5:0 35 cpuid 57 * sev_es_req_cpuid - Request a CPUID value from the Hypervisor using 61 * @%edx: CPUID Function 64 * %edx returns CPUID value on success 99 /* Keep CPUID function in %ebx */ 106 movl $0, %eax # Request CPUID[fn].EAX [all …]
|
/Linux-v6.6/include/soc/tegra/ |
D | flowctrl.h | 44 u32 flowctrl_read_cpu_csr(unsigned int cpuid); 45 void flowctrl_write_cpu_csr(unsigned int cpuid, u32 value); 46 void flowctrl_write_cpu_halt(unsigned int cpuid, u32 value); 48 void flowctrl_cpu_suspend_enter(unsigned int cpuid); 49 void flowctrl_cpu_suspend_exit(unsigned int cpuid); 51 static inline u32 flowctrl_read_cpu_csr(unsigned int cpuid) in flowctrl_read_cpu_csr() argument 56 static inline void flowctrl_write_cpu_csr(unsigned int cpuid, u32 value) in flowctrl_write_cpu_csr() argument 60 static inline void flowctrl_write_cpu_halt(unsigned int cpuid, u32 value) {} in flowctrl_write_cpu_halt() argument 62 static inline void flowctrl_cpu_suspend_enter(unsigned int cpuid) in flowctrl_cpu_suspend_enter() argument 66 static inline void flowctrl_cpu_suspend_exit(unsigned int cpuid) in flowctrl_cpu_suspend_exit() argument
|
/Linux-v6.6/drivers/soc/tegra/ |
D | flowctrl.c | 51 u32 flowctrl_read_cpu_csr(unsigned int cpuid) in flowctrl_read_cpu_csr() argument 53 u8 offset = flowctrl_offset_cpu_csr[cpuid]; in flowctrl_read_cpu_csr() 62 void flowctrl_write_cpu_csr(unsigned int cpuid, u32 value) in flowctrl_write_cpu_csr() argument 64 return flowctrl_update(flowctrl_offset_cpu_csr[cpuid], value); in flowctrl_write_cpu_csr() 67 void flowctrl_write_cpu_halt(unsigned int cpuid, u32 value) in flowctrl_write_cpu_halt() argument 69 return flowctrl_update(flowctrl_offset_halt_cpu[cpuid], value); in flowctrl_write_cpu_halt() 72 void flowctrl_cpu_suspend_enter(unsigned int cpuid) in flowctrl_cpu_suspend_enter() argument 77 reg = flowctrl_read_cpu_csr(cpuid); in flowctrl_cpu_suspend_enter() 85 reg |= TEGRA20_FLOW_CTRL_CSR_WFE_CPU0 << cpuid; in flowctrl_cpu_suspend_enter() 106 reg |= TEGRA20_FLOW_CTRL_CSR_WFE_CPU0 << cpuid; in flowctrl_cpu_suspend_enter() [all …]
|
/Linux-v6.6/arch/x86/kernel/ |
D | verify_cpu.S | 40 pushfl # standard way to check for cpuid 49 jz .Lverify_cpu_no_longmode # cpu has no cpuid 52 movl $0x0,%eax # See if cpuid 1 is implemented 53 cpuid 55 jb .Lverify_cpu_no_longmode # no cpuid 1 78 cpuid 101 cpuid 106 movl $0x80000000,%eax # See if extended cpuid is implemented 107 cpuid 109 jb .Lverify_cpu_no_longmode # no extended cpuid [all …]
|
D | cpuid.c | 9 * x86 CPUID access device 11 * This device is accessed by lseek() to the appropriate CPUID level 19 * This driver uses /dev/cpu/%d/cpuid where %d is the minor number, and on 111 return -EIO; /* CPUID not supported */ in cpuid_open() 128 return kasprintf(GFP_KERNEL, "cpu/%u/cpuid", MINOR(dev->devt)); in cpuid_devnode() 132 .name = "cpuid", 156 "cpu/cpuid", &cpuid_fops)) { in cpuid_init() 157 printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n", in cpuid_init() 165 err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "x86/cpuid:online", in cpuid_init() 176 __unregister_chrdev(CPUID_MAJOR, 0, NR_CPUS, "cpu/cpuid"); in cpuid_init() [all …]
|
/Linux-v6.6/arch/x86/include/asm/ |
D | cpuid.h | 3 * CPUID-related helpers/definitions 34 asm volatile("cpuid" in native_cpuid() 54 * Native CPUID functions returning a single datum. 68 * Generic CPUID function in native_cpuid_reg() 72 static inline void cpuid(unsigned int op, in native_cpuid_reg() 81 /* Some CPUID calls want 'count' to be placed in ecx */ 92 * CPUID functions returning a single datum 98 cpuid(op, &eax, &ebx, &ecx, &edx); in cpuid_eax() 107 cpuid(op, &eax, &ebx, &ecx, &edx); in cpuid_ebx() 116 cpuid(op, &eax, &ebx, &ecx, &edx); in cpuid_ecx() [all …]
|
/Linux-v6.6/arch/alpha/kernel/ |
D | smp.c | 68 /* Set to a secondary's cpuid when it comes online. */ 80 smp_store_cpu_info(int cpuid) in smp_store_cpu_info() argument 82 cpu_data[cpuid].loops_per_jiffy = loops_per_jiffy; in smp_store_cpu_info() 83 cpu_data[cpuid].last_asn = ASN_FIRST_VERSION; in smp_store_cpu_info() 84 cpu_data[cpuid].need_new_asn = 0; in smp_store_cpu_info() 85 cpu_data[cpuid].asn_lock = 0; in smp_store_cpu_info() 92 smp_setup_percpu_timer(int cpuid) in smp_setup_percpu_timer() argument 94 cpu_data[cpuid].prof_counter = 1; in smp_setup_percpu_timer() 95 cpu_data[cpuid].prof_multiplier = 1; in smp_setup_percpu_timer() 99 wait_boot_cpu_to_stop(int cpuid) in wait_boot_cpu_to_stop() argument [all …]
|
/Linux-v6.6/tools/perf/arch/riscv/util/ |
D | header.c | 42 char *cpuid = NULL; in _get_cpuid() local 49 return cpuid; in _get_cpuid() 72 if (asprintf(&cpuid, "%s-%s-%s", mvendorid, marchid, mimpid) < 0) in _get_cpuid() 73 cpuid = NULL; in _get_cpuid() 81 return cpuid; in _get_cpuid() 86 char *cpuid = _get_cpuid(); in get_cpuid() local 89 if (sz < strlen(cpuid)) { in get_cpuid() 94 scnprintf(buffer, sz, "%s", cpuid); in get_cpuid() 96 free(cpuid); in get_cpuid()
|
/Linux-v6.6/arch/x86/kvm/ |
D | cpuid.c | 4 * cpuid support routines 24 #include <asm/cpuid.h> 25 #include "cpuid.h" 74 * Magic value used by KVM when querying userspace-provided CPUID entries and 78 * to avoid false positives when processing guest CPUID input. 89 * KVM has a semi-arbitrary rule that querying the guest's CPUID model in cpuid_entry2_find() 90 * with IRQs disabled is disallowed. The CPUID model can legitimately in cpuid_entry2_find() 96 * of the hotpath, e.g. by caching information during CPUID updates. in cpuid_entry2_find() 117 * lookup (as opposed to emulating CPUID) for a function that's in cpuid_entry2_find() 169 /* Check whether the supplied CPUID data is equal to what is already set for the vCPU. */ [all …]
|
/Linux-v6.6/arch/x86/kernel/cpu/ |
D | tsx.c | 33 * Ensure TSX support is not enumerated in CPUID. in tsx_disable() 53 * Ensure TSX support is enumerated in CPUID. in tsx_enable() 73 * First of all, there's a CPUID bit: X86_FEATURE_RTM_ALWAYS_ABORT 81 * the MSR is present only when *two* CPUID bits are set: 89 * CPUID bit X86_FEATURE_RTM_ALWAYS_ABORT set and for those the same strategy 96 * which, when done, may cause for the X86_FEATURE_RTM_ALWAYS_ABORT CPUID 100 * cause for the supported CPUID feature bits to get re-detected and, if 103 * short: the kernel doesn't modify CPUID feature bits after booting. 113 * MSR_TFA_TSX_CPUID_CLEAR bit is only present when both CPUID in tsx_clear_cpuid() 166 * Hardware will always abort a TSX transaction when the CPUID bit in tsx_init() [all …]
|
/Linux-v6.6/tools/perf/arch/x86/util/ |
D | header.c | 12 #include "cpuid.h" 18 cpuid(0, 0, lvl, &b, &c, &d); in get_cpuid_0() 36 cpuid(1, 0, &a, &b, &c, &d); in __get_cpuid() 78 /* Full CPUID format for x86 is vendor-family-model-stepping */ 104 * Full CPUID format is required to identify a platform. in strcmp_cpuid_str() 105 * Error out if the cpuid string is incomplete. in strcmp_cpuid_str() 108 pr_info("Invalid CPUID %s. Full CPUID is required, " in strcmp_cpuid_str() 125 /* If the full CPUID format isn't required, in strcmp_cpuid_str()
|
/Linux-v6.6/tools/testing/selftests/kvm/lib/x86_64/ |
D | processor.c | 621 if (vcpu->cpuid) in vcpu_arch_free() 622 free(vcpu->cpuid); in vcpu_arch_free() 645 static uint32_t __kvm_cpu_has(const struct kvm_cpuid2 *cpuid, in __kvm_cpu_has() argument 652 for (i = 0; i < cpuid->nent; i++) { in __kvm_cpu_has() 653 entry = &cpuid->entries[i]; in __kvm_cpu_has() 667 bool kvm_cpuid_has(const struct kvm_cpuid2 *cpuid, in kvm_cpuid_has() argument 670 return __kvm_cpu_has(cpuid, feature.function, feature.index, in kvm_cpuid_has() 674 uint32_t kvm_cpuid_property(const struct kvm_cpuid2 *cpuid, in kvm_cpuid_property() argument 677 return __kvm_cpu_has(cpuid, property.function, property.index, in kvm_cpuid_property() 738 void vcpu_init_cpuid(struct kvm_vcpu *vcpu, const struct kvm_cpuid2 *cpuid) in vcpu_init_cpuid() argument [all …]
|
/Linux-v6.6/drivers/firmware/psci/ |
D | psci.c | 216 static int __psci_cpu_on(u32 fn, unsigned long cpuid, unsigned long entry_point) in __psci_cpu_on() argument 220 err = invoke_psci_fn(fn, cpuid, entry_point, 0); in __psci_cpu_on() 224 static int psci_0_1_cpu_on(unsigned long cpuid, unsigned long entry_point) in psci_0_1_cpu_on() argument 226 return __psci_cpu_on(psci_0_1_function_ids.cpu_on, cpuid, entry_point); in psci_0_1_cpu_on() 229 static int psci_0_2_cpu_on(unsigned long cpuid, unsigned long entry_point) in psci_0_2_cpu_on() argument 231 return __psci_cpu_on(PSCI_FN_NATIVE(0_2, CPU_ON), cpuid, entry_point); in psci_0_2_cpu_on() 234 static int __psci_migrate(u32 fn, unsigned long cpuid) in __psci_migrate() argument 238 err = invoke_psci_fn(fn, cpuid, 0, 0); in __psci_migrate() 242 static int psci_0_1_migrate(unsigned long cpuid) in psci_0_1_migrate() argument 244 return __psci_migrate(psci_0_1_function_ids.migrate, cpuid); in psci_0_1_migrate() [all …]
|