| /kernel/linux/linux-4.19/Documentation/x86/ |
| D | topology.txt | 8 The architecture-agnostic topology definitions are in 9 Documentation/cputopology.txt. This file holds x86-specific 14 Needless to say, code should use the generic functions - this file is *only* 32 - packages 33 - cores 34 - threads 43 Package-related topology information in the kernel: 45 - cpuinfo_x86.x86_max_cores: 49 - cpuinfo_x86.phys_proc_id: 54 - cpuinfo_x86.logical_id: [all …]
|
| /kernel/linux/linux-5.10/Documentation/x86/ |
| D | topology.rst | 1 .. SPDX-License-Identifier: GPL-2.0 11 The architecture-agnostic topology definitions are in 12 Documentation/admin-guide/cputopology.rst. This file holds x86-specific 17 Needless to say, code should use the generic functions - this file is *only* 35 - packages 36 - cores 37 - threads 48 Package-related topology information in the kernel: 50 - cpuinfo_x86.x86_max_cores: 54 - cpuinfo_x86.x86_max_dies: [all …]
|
| /kernel/linux/linux-4.19/arch/mips/kernel/ |
| D | smp-cps.c | 11 #include <linux/cpu.h> 21 #include <asm/mips-cps.h> 24 #include <asm/pm-cps.h> 26 #include <asm/smp-cps.h> 42 static unsigned core_vpe_count(unsigned int cluster, unsigned core) in core_vpe_count() argument 47 return mips_cps_numvps(cluster, core); in core_vpe_count() 73 /* Use the number of VPEs in cluster 0 core 0 for smp_num_siblings */ in cps_smp_setup() 77 for (v = 0; v < min_t(int, core_vpes, NR_CPUS - nvpes); v++) { in cps_smp_setup() 90 /* Indicate present CPUs (CPU being synonymous with VPE) */ in cps_smp_setup() 101 /* Core 0 is powered up (we're running on it) */ in cps_smp_setup() [all …]
|
| /kernel/linux/linux-5.10/arch/mips/kernel/ |
| D | smp-cps.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <linux/cpu.h> 17 #include <asm/mips-cps.h> 20 #include <asm/pm-cps.h> 22 #include <asm/smp-cps.h> 38 static unsigned core_vpe_count(unsigned int cluster, unsigned core) in core_vpe_count() argument 43 return mips_cps_numvps(cluster, core); in core_vpe_count() 69 /* Use the number of VPEs in cluster 0 core 0 for smp_num_siblings */ in cps_smp_setup() 73 for (v = 0; v < min_t(int, core_vpes, NR_CPUS - nvpes); v++) { in cps_smp_setup() 86 /* Indicate present CPUs (CPU being synonymous with VPE) */ in cps_smp_setup() [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/arm/ |
| D | topology.txt | 6 1 - Introduction 12 - cluster 13 - core 14 - thread 16 The cpu nodes (bindings defined in [1]) represent the devices that 19 The bottom hierarchy level sits at core or thread level depending on whether 20 symmetric multi-threading (SMT) is supported or not. 22 For instance in a system where CPUs support SMT, "cpu" nodes represent all 24 In systems where SMT is not supported "cpu" nodes represent all cores present 25 in the system and map to the hierarchy level "core" above. [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/pm/ |
| D | intel-speed-select.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 collection of features that give more granular control over CPU performance. 14 - https://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-artic… 15 - https://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enha… 19 dynamically without pre-configuring via BIOS setup options. This dynamic 29 intel-speed-select configuration tool 32 Most Linux distribution packages may include the "intel-speed-select" tool. If not, 38 # cd tools/power/x86/intel-speed-select/ 43 ------------ 47 # intel-speed-select --help [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/cpu/ |
| D | cpu-topology.txt | 2 CPU topology binding description 6 1 - Introduction 12 - socket 13 - cluster 14 - core 15 - thread 17 The bottom hierarchy level sits at core or thread level depending on whether 18 symmetric multi-threading (SMT) is supported or not. 20 For instance in a system where CPUs support SMT, "cpu" nodes represent all 22 In systems where SMT is not supported "cpu" nodes represent all cores present [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/ |
| D | cputhreads.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 * threads per core and the same number for each core in the system 15 * as the CPU numbers are still allocated, just not brought online). 35 /* cpu_thread_mask_to_cores - Return a cpumask of one per cores 40 * This function returns a cpumask which will have one online cpu's 41 * bit set for each core that has at least one thread set in the argument. 44 * since those need to be done only once per core/TLB 49 int i, cpu; in cpu_thread_mask_to_cores() local 55 cpu = cpumask_next_and(-1, &tmp, cpu_online_mask); in cpu_thread_mask_to_cores() 56 if (cpu < nr_cpu_ids) in cpu_thread_mask_to_cores() [all …]
|
| /kernel/linux/linux-4.19/arch/arm64/kernel/ |
| D | topology.c | 17 #include <linux/cpu.h> 30 #include <asm/cpu.h> 37 int cpu; in get_cpu_for_node() local 39 cpu_node = of_parse_phandle(node, "cpu", 0); in get_cpu_for_node() 41 return -1; in get_cpu_for_node() 43 cpu = of_cpu_node_to_id(cpu_node); in get_cpu_for_node() 44 if (cpu >= 0) in get_cpu_for_node() 45 topology_parse_cpu_capacity(cpu_node, cpu); in get_cpu_for_node() 47 pr_crit("Unable to find CPU node for %pOF\n", cpu_node); in get_cpu_for_node() 50 return cpu; in get_cpu_for_node() [all …]
|
| /kernel/linux/linux-5.10/arch/arm/mach-bcm/ |
| D | platsmp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2014-2015 Broadcom Corporation 12 #include <linux/irqchip/irq-bcm2836.h> 34 #define OF_SECONDARY_BOOT "secondary-boot-reg" 54 return -ENXIO; in scu_a9_enable() 60 pr_err("hardware reports only one core\n"); in scu_a9_enable() 61 return -ENOENT; in scu_a9_enable() 68 return -ENOMEM; in scu_a9_enable() 78 static u32 secondary_boot_addr_for(unsigned int cpu) in secondary_boot_addr_for() argument 81 struct device_node *cpu_node = of_get_cpu_node(cpu, NULL); in secondary_boot_addr_for() [all …]
|
| /kernel/linux/linux-5.10/tools/power/cpupower/lib/ |
| D | cpupower.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * (C) 2004-2009 Dominik Brodowski <linux@dominikbrodowski.de> 23 if (fd == -1) in cpupower_read_sysfs() 26 numread = read(fd, buf, buflen - 1); in cpupower_read_sysfs() 39 * Detect whether a CPU is online 42 * 1 -> if CPU is online 43 * 0 -> if CPU is offline 46 int cpupower_is_cpu_online(unsigned int cpu) in cpupower_is_cpu_online() argument 56 snprintf(path, sizeof(path), PATH_TO_CPU "cpu%u", cpu); in cpupower_is_cpu_online() 63 * -> cpuX directory exists, but not cpuX/online file in cpupower_is_cpu_online() [all …]
|
| /kernel/linux/linux-4.19/tools/power/cpupower/lib/ |
| D | cpupower.c | 2 * (C) 2004-2009 Dominik Brodowski <linux@dominikbrodowski.de> 24 if (fd == -1) in cpupower_read_sysfs() 27 numread = read(fd, buf, buflen - 1); in cpupower_read_sysfs() 40 * Detect whether a CPU is online 43 * 1 -> if CPU is online 44 * 0 -> if CPU is offline 47 int cpupower_is_cpu_online(unsigned int cpu) in cpupower_is_cpu_online() argument 57 snprintf(path, sizeof(path), PATH_TO_CPU "cpu%u", cpu); in cpupower_is_cpu_online() 64 * -> cpuX directory exists, but not cpuX/online file in cpupower_is_cpu_online() 66 snprintf(path, sizeof(path), PATH_TO_CPU "cpu%u/online", cpu); in cpupower_is_cpu_online() [all …]
|
| /kernel/linux/linux-4.19/arch/arm/mach-bcm/ |
| D | platsmp.c | 2 * Copyright (C) 2014-2015 Broadcom Corporation 20 #include <linux/irqchip/irq-bcm2836.h> 40 #define OF_SECONDARY_BOOT "secondary-boot-reg" 60 return -ENXIO; in scu_a9_enable() 66 pr_err("hardware reports only one core\n"); in scu_a9_enable() 67 return -ENOENT; in scu_a9_enable() 74 return -ENOMEM; in scu_a9_enable() 84 static u32 secondary_boot_addr_for(unsigned int cpu) in secondary_boot_addr_for() argument 87 struct device_node *cpu_node = of_get_cpu_node(cpu, NULL); in secondary_boot_addr_for() 90 pr_err("Failed to find device tree node for CPU%u\n", cpu); in secondary_boot_addr_for() [all …]
|
| /kernel/linux/linux-4.19/arch/s390/numa/ |
| D | mode_emu.c | 1 // SPDX-License-Identifier: GPL-2.0 13 * Because the current Linux scheduler code requires a stable cpu to node 14 * mapping, cores are pinned to nodes when the first CPU thread is set online. 46 #define NODE_ID_FREE -1 49 enum toptree_level {CORE, MC, BOOK, DRAWER, NODE, TOPOLOGY}; enumerator 60 * Node to core pinning information updates are protected by 64 s32 to_node_id[CONFIG_NR_CPUS]; /* Pinned core to node mapping */ 71 * Pin a core to a node 75 if (emu_cores->to_node_id[core_id] == NODE_ID_FREE) { in pin_core_to_node() 76 emu_cores->per_node[node_id]++; in pin_core_to_node() [all …]
|
| /kernel/linux/linux-4.19/arch/powerpc/include/asm/ |
| D | cputhreads.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 * threads per core and the same number for each core in the system 15 * as the CPU numbers are still allocated, just not brought online). 34 /* cpu_thread_mask_to_cores - Return a cpumask of one per cores 39 * This function returns a cpumask which will have one online cpu's 40 * bit set for each core that has at least one thread set in the argument. 43 * since those need to be done only once per core/TLB 48 int i, cpu; in cpu_thread_mask_to_cores() local 54 cpu = cpumask_next_and(-1, &tmp, cpu_online_mask); in cpu_thread_mask_to_cores() 55 if (cpu < nr_cpu_ids) in cpu_thread_mask_to_cores() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/regulator/ |
| D | nvidia,tegra-regulators-coupling.txt | 4 NVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators. 9 ------------------------ 11 On Tegra20 SoC's there are 3 coupled regulators: CORE, RTC and CPU. 12 The CORE and RTC voltages shall be in a range of 170mV from each other 13 and they both shall be higher than the CPU voltage by at least 120mV. 16 ------------------------ 18 On Tegra30 SoC's there are 2 coupled regulators: CORE and CPU. The CORE 19 and CPU voltages shall be in a range of 300mV from each other and CORE 20 voltage shall be higher than the CPU by N mV, where N depends on the CPU 24 - nvidia,tegra-core-regulator: Boolean property that designates regulator [all …]
|
| /kernel/linux/linux-5.10/arch/c6x/boot/dts/ |
| D | tms320c6678.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 #address-cells = <1>; 5 #size-cells = <1>; 8 #address-cells = <1>; 9 #size-cells = <0>; 11 cpu@0 { 12 device_type = "cpu"; 16 cpu@1 { 17 device_type = "cpu"; 21 cpu@2 { [all …]
|
| /kernel/linux/linux-4.19/arch/c6x/boot/dts/ |
| D | tms320c6678.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 #address-cells = <1>; 5 #size-cells = <1>; 8 #address-cells = <1>; 9 #size-cells = <0>; 11 cpu@0 { 12 device_type = "cpu"; 16 cpu@1 { 17 device_type = "cpu"; 21 cpu@2 { [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/arm/msm/ |
| D | qcom,idle-state.txt | 3 ARM provides idle-state node to define the cpuidle states, as defined in [1]. 4 cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle 6 The idle states supported by the QCOM SoC are defined as - 14 When the WFI instruction is executed the ARM core would gate its internal 17 interrupt to trigger the core back in to active. This triggers the cache 20 cache hierarchy is also out of standby, and then the cpu is allowed to resume 26 Retention: Retention is a low power state where the core is clock gated and 27 the memory and the registers associated with the core are retained. The 30 sequence and would wait for interrupt, before restoring the cpu to execution 33 Standalone PC: A cpu can power down and warmboot if there is a sufficient time [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/msm/ |
| D | qcom,idle-state.txt | 3 ARM provides idle-state node to define the cpuidle states, as defined in [1]. 4 cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle 6 The idle states supported by the QCOM SoC are defined as - 14 When the WFI instruction is executed the ARM core would gate its internal 17 interrupt to trigger the core back in to active. This triggers the cache 20 cache hierarchy is also out of standby, and then the cpu is allowed to resume 26 Retention: Retention is a low power state where the core is clock gated and 27 the memory and the registers associated with the core are retained. The 30 sequence and would wait for interrupt, before restoring the cpu to execution 33 Standalone PC: A cpu can power down and warmboot if there is a sufficient time [all …]
|
| /kernel/linux/linux-5.10/tools/perf/util/ |
| D | evsel.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Parts came from builtin-{top,stat,record}.c, see those files for further 15 #include <traceevent/event-parse.h> 43 #include "trace-event.h" 48 #include "../perf-sys.h" 49 #include "util/parse-branch-options.h" 88 return -EINVAL; in evsel__object_config() 102 #define FD(e, x, y) (*(int *)xyarray__entry(e->core.fd, x, y)) 121 * __perf_evsel__calc_id_pos - calculate id_pos. 136 return -1; in __perf_evsel__calc_id_pos() [all …]
|
| D | evsel.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 28 /** struct evsel - event selector 30 * @evlist - evlist this evsel is in, if it is in one. 31 * @core - libperf evsel object 32 * @name - Can be set to retain the original event name passed by the user, 39 * PERF_SAMPLE_IDENTIFIER) in a non-sample event i.e. if sample_id_all 40 * is used there is an id sample appended to non-sample events 44 struct perf_evsel core; member 53 * These fields can be set in the parse-events code or similar. 158 return perf_evsel__cpus(&evsel->core); in evsel__cpus() [all …]
|
| D | mmap.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2011-2017, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com> 5 * Parts came from evlist.c builtin-{top,stat,record}.c, see those files for further 34 len = bitmap_scnprintf(mask->bits, mask->nbits, buf, MASK_SIZE); in mmap_cpu_mask__scnprintf() 36 pr_debug("%p: %s mask[%zd]: %s\n", mask, tag, mask->nbits, buf); in mmap_cpu_mask__scnprintf() 41 return perf_mmap__mmap_len(&map->core); in mmap__mmap_len() 73 return map->aio.nr_cblocks > 0; in perf_mmap__aio_enabled() 79 map->aio.data[idx] = mmap(NULL, mmap__mmap_len(map), PROT_READ|PROT_WRITE, in perf_mmap__aio_alloc() 81 if (map->aio.data[idx] == MAP_FAILED) { in perf_mmap__aio_alloc() 82 map->aio.data[idx] = NULL; in perf_mmap__aio_alloc() [all …]
|
| /kernel/linux/linux-5.10/drivers/base/ |
| D | arch_topology.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Arch specific cpu topology information 10 #include <linux/cpu.h> 61 void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity) in topology_set_cpu_scale() argument 63 per_cpu(cpu_scale, cpu) = capacity; in topology_set_cpu_scale() 71 int cpu; in topology_set_thermal_pressure() local 73 for_each_cpu(cpu, cpus) in topology_set_thermal_pressure() 74 WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure); in topology_set_thermal_pressure() 81 struct cpu *cpu = container_of(dev, struct cpu, dev); in cpu_capacity_show() local 83 return sysfs_emit(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id)); in cpu_capacity_show() [all …]
|
| /kernel/linux/linux-4.19/arch/mips/netlogic/xlp/ |
| D | wakeup.c | 2 * Copyright 2003-2011 NetLogic Microsystems, Inc. (NetLogic). All rights 39 #include <asm/asm-offsets.h> 46 #include <asm/netlogic/mips-extns.h> 48 #include <asm/netlogic/xlp-hal/iomap.h> 49 #include <asm/netlogic/xlp-hal/xlp.h> 50 #include <asm/netlogic/xlp-hal/pic.h> 51 #include <asm/netlogic/xlp-hal/sys.h> 53 static int xlp_wakeup_core(uint64_t sysbase, int node, int core) in xlp_wakeup_core() argument 58 coremask = (1 << core); in xlp_wakeup_core() 60 /* Enable CPU clock in case of 8xx/3xx */ in xlp_wakeup_core() [all …]
|