/openbmc/linux/Documentation/arch/x86/ |
H A 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 …]
|
/openbmc/qemu/docs/system/s390x/ |
H A D | cpu-topology.rst | 1 .. _cpu-topology-s390x: 3 CPU topology on s390x 6 Since QEMU 8.2, CPU topology on s390x provides up to 3 levels of 8 tree-shaped hierarchy. 10 The socket container has one or more CPU entries. 11 Each of these CPU entries consists of a bitmap and three CPU attributes: 13 - CPU type 14 - entitlement 15 - dedication 17 Each bit set in the bitmap correspond to a core-id of a vCPU with matching [all …]
|
/openbmc/linux/arch/mips/kernel/ |
H A D | smp-cps.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <linux/cpu.h> 18 #include <asm/mips-cps.h> 21 #include <asm/pm-cps.h> 24 #include <asm/smp-cps.h> 32 static unsigned __init core_vpe_count(unsigned int cluster, unsigned core) in core_vpe_count() argument 34 return min(smp_max_threads, mips_cps_numvps(cluster, core)); in core_vpe_count() 60 /* Use the number of VPEs in cluster 0 core 0 for smp_num_siblings */ in cps_smp_setup() 64 for (v = 0; v < min_t(int, core_vpes, NR_CPUS - nvpes); v++) { in cps_smp_setup() 77 /* Indicate present CPUs (CPU being synonymous with VPE) */ in cps_smp_setup() [all …]
|
/openbmc/linux/tools/perf/tests/ |
H A D | topology.c | 1 // SPDX-License-Identifier: GPL-2.0 14 #define TEMPL "/tmp/perf-test-XXXXXX" 26 return -1; in get_temp() 44 session->evlist = evlist__new_default(); in session_write_header() 45 TEST_ASSERT_VAL("can't get evlist", session->evlist); in session_write_header() 47 perf_header__set_feat(&session->header, HEADER_CPU_TOPOLOGY); in session_write_header() 48 perf_header__set_feat(&session->header, HEADER_NRCPUS); in session_write_header() 49 perf_header__set_feat(&session->header, HEADER_ARCH); in session_write_header() 51 session->header.data_size += DATA_SIZE; in session_write_header() 54 !perf_session__write_header(session, session->evlist, data.file.fd, true)); in session_write_header() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/cpu/ |
H A 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 …]
|
/openbmc/linux/Documentation/admin-guide/pm/ |
H A 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 …]
|
/openbmc/linux/tools/perf/util/ |
H A D | bpf_counter_cgroup.c | 1 // SPDX-License-Identifier: GPL-2.0 42 #define FD(evt, cpu) (*(int *)xyarray__entry(evt->core.fd, cpu, 0)) argument 50 struct perf_cpu cpu; in bperf_load_program() local 51 int total_cpus = cpu__max_cpu().cpu; in bperf_load_program() 58 return -1; in bperf_load_program() 61 skel->rodata->num_cpus = total_cpus; in bperf_load_program() 62 skel->rodata->num_events = evlist->core.nr_entries / nr_cgroups; in bperf_load_program() 64 BUG_ON(evlist->core.nr_entries % nr_cgroups != 0); in bperf_load_program() 66 /* we need one copy of events per cpu for reading */ in bperf_load_program() 67 map_size = total_cpus * evlist->core.nr_entries / nr_cgroups; in bperf_load_program() [all …]
|
H A D | cpumap.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 /** Identify where counts are aggregated, -1 implies not to aggregate. */ 18 * /sys/devices/system/cpu/cpuX/topology/physical_package_id. 21 /** The die id as read from /sys/devices/system/cpu/cpuX/topology/die_id. */ 23 /** The cache level as read from /sys/devices/system/cpu/cpuX/cache/indexY/level */ 26 * The cache instance ID, which is the first CPU in the 27 * /sys/devices/system/cpu/cpuX/cache/indexY/shared_cpu_list 30 /** The core id as read from /sys/devices/system/cpu/cpuX/topology/core_id. */ 31 int core; member 32 /** CPU aggregation, note there is one CPU for each SMT thread. */ [all …]
|
H A 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 …]
|
/openbmc/qemu/tests/functional/ |
H A D | test_s390x_topology.py | 11 # later. See the COPYING file in the top-level directory. 25 S390x CPU topology consists of 4 topology layers, from bottom to top, 28 See: docs/system/s390x/cpu-topology.rst. 30 S390x CPU topology is setup in different ways: 31 - implicitly from the '-smp' argument by completing each topology 34 - explicitly from the '-device' argument on the QEMU command line 35 - explicitly by hotplug of a new CPU using QMP or HMP 36 - it is modified by using QMP 'set-cpu-topology' 51 '/fedora-secondary/releases/35/Server/s390x/os' 57 '/fedora-secondary/releases/35/Server/s390x/os' [all …]
|
/openbmc/linux/tools/perf/pmu-events/arch/x86/haswell/ |
H A D | hsw-metrics.json | 4 "MetricExpr": "cstate_pkg@c2\\-residency@ / TSC", 10 "BriefDescription": "C3 residency percent per core", 11 "MetricExpr": "cstate_core@c3\\-residency@ / TSC", 18 "MetricExpr": "cstate_pkg@c3\\-residency@ / TSC", 24 "BriefDescription": "C6 residency percent per core", 25 "MetricExpr": "cstate_core@c6\\-residency@ / TSC", 32 "MetricExpr": "cstate_pkg@c6\\-residency@ / TSC", 38 "BriefDescription": "C7 residency percent per core", 39 "MetricExpr": "cstate_core@c7\\-residency@ / TSC", 46 "MetricExpr": "cstate_pkg@c7\\-residency@ / TSC", [all …]
|
/openbmc/linux/arch/powerpc/include/asm/ |
H A 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). 41 int cpu_core_index_of_thread(int cpu); 42 int cpu_first_thread_of_core(int core); 44 static inline int cpu_core_index_of_thread(int cpu) { return cpu; } in cpu_core_index_of_thread() argument 45 static inline int cpu_first_thread_of_core(int core) { return core; } in cpu_first_thread_of_core() argument 48 static inline int cpu_thread_in_core(int cpu) in cpu_thread_in_core() argument 50 return cpu & (threads_per_core - 1); in cpu_thread_in_core() 53 static inline int cpu_thread_in_subcore(int cpu) in cpu_thread_in_subcore() argument [all …]
|
/openbmc/linux/arch/arm/mach-bcm/ |
H A 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 …]
|
/openbmc/linux/tools/power/cpupower/lib/ |
H A D | cpupower.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * (C) 2004-2009 Dominik Brodowski <linux@dominikbrodowski.de> 19 if (access(path, F_OK) == -1) in is_valid_path() 30 if (fd == -1) in cpupower_read_sysfs() 33 numread = read(fd, buf, buflen - 1); in cpupower_read_sysfs() 51 if (fd == -1) in cpupower_write_sysfs() 54 numwritten = write(fd, buf, buflen - 1); in cpupower_write_sysfs() 58 return -1; in cpupower_write_sysfs() 67 * Detect whether a CPU is online 70 * 1 -> if CPU is online [all …]
|
/openbmc/qemu/docs/devel/ |
H A D | s390-cpu-topology.rst | 1 QAPI interface for S390 CPU topology 4 The following sections will explain the QAPI interface for S390 CPU topology 7 command, defining 4 CPUs, where CPU[0] is defined by the -smp argument and will 10 .. code-block:: bash 12 qemu-system-s390x \ 13 -enable-kvm \ 14 -cpu z14,ctop=on \ 15 -smp 1,drawers=3,books=3,sockets=2,cores=2,maxcpus=36 \ 16 -device z14-s390x-cpu,core-id=19,entitlement=high \ 17 -device z14-s390x-cpu,core-id=11,entitlement=low \ [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/regulator/ |
H A 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 …]
|
/openbmc/linux/drivers/platform/x86/intel/ifs/ |
H A D | runtest.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 #include <linux/cpu.h> 15 * ifs_sem. On HT systems all threads on a core will 17 * core will update results of the test. 27 * Number of TSC cycles that a logical CPU will wait for the other 28 * logical CPU on the core in the WRMSR(ACTIVATE_SCAN). 50 "Core Abort SCAN Response due to power management condition.", 53 [IFS_CORE_NOT_CAPABLE_CURRENTLY] = "Core not capable of performing SCAN currently", 56 "Exceeded number of Logical Processors (LP) allowed to run Scan-At-Field concurrently", 60 static void message_not_tested(struct device *dev, int cpu, union ifs_status status) in message_not_tested() argument [all …]
|
/openbmc/qemu/tests/qtest/ |
H A D | numa-test.c | 9 * See the COPYING file in the top-level directory. 19 return g_strdup_printf("%s %s", generic_cli->str, test_cli); in make_cli() 28 cli = make_cli(data, "-machine smp.cpus=8 -numa node,nodeid=0,memdev=ram,cpus=0-3 " in test_mon_explicit() 29 "-numa node,nodeid=1,cpus=4-7"); in test_mon_explicit() 45 cli = make_cli(data, "-machine smp.cpus=8,smp.sockets=8 " in test_def_cpu_split() 46 "-numa node,memdev=ram -numa node"); in test_def_cpu_split() 62 cli = make_cli(data, "-machine smp.cpus=8 " in test_mon_partial() 63 "-numa node,nodeid=0,memdev=ram,cpus=0-1 " in test_mon_partial() 64 "-numa node,nodeid=1,cpus=4-5 "); in test_mon_partial() 76 *resp = qtest_qmp(qts, "{ 'execute': 'query-cpus-fast' }"); in get_cpus() [all …]
|
/openbmc/linux/tools/perf/pmu-events/arch/x86/haswellx/ |
H A D | hsx-metrics.json | 4 "MetricExpr": "cstate_pkg@c2\\-residency@ / TSC", 10 "BriefDescription": "C3 residency percent per core", 11 "MetricExpr": "cstate_core@c3\\-residency@ / TSC", 18 "MetricExpr": "cstate_pkg@c3\\-residency@ / TSC", 24 "BriefDescription": "C6 residency percent per core", 25 "MetricExpr": "cstate_core@c6\\-residency@ / TSC", 32 "MetricExpr": "cstate_pkg@c6\\-residency@ / TSC", 38 "BriefDescription": "C7 residency percent per core", 39 "MetricExpr": "cstate_core@c7\\-residency@ / TSC", 46 "MetricExpr": "cstate_pkg@c7\\-residency@ / TSC", [all …]
|
/openbmc/qemu/docs/system/ |
H A D | cpu-hotplug.rst | 2 Virtual CPU hotplug 5 A complete example of vCPU hotplug (and hot-unplug) using QMP 9 ------------ 14 $ qemu-system-x86_64 -display none -no-user-config -m 2048 \ 15 -nodefaults -monitor stdio -machine pc,accel=kvm,usb=off \ 16 -smp 1,maxcpus=2 -cpu IvyBridge-IBRS \ 17 -qmp unix:/tmp/qmp-sock,server=on,wait=off 19 (2) Run 'qmp-shell' (located in the source tree, under: "scripts/qmp/) 20 to connect to the just-launched QEMU:: 22 $> ./qmp-shell -p -v /tmp/qmp-sock [all …]
|
/openbmc/linux/tools/perf/pmu-events/arch/x86/broadwell/ |
H A D | bdw-metrics.json | 4 "MetricExpr": "cstate_pkg@c2\\-residency@ / TSC", 10 "BriefDescription": "C3 residency percent per core", 11 "MetricExpr": "cstate_core@c3\\-residency@ / TSC", 18 "MetricExpr": "cstate_pkg@c3\\-residency@ / TSC", 24 "BriefDescription": "C6 residency percent per core", 25 "MetricExpr": "cstate_core@c6\\-residency@ / TSC", 32 "MetricExpr": "cstate_pkg@c6\\-residency@ / TSC", 38 "BriefDescription": "C7 residency percent per core", 39 "MetricExpr": "cstate_core@c7\\-residency@ / TSC", 46 "MetricExpr": "cstate_pkg@c7\\-residency@ / TSC", [all …]
|
/openbmc/linux/tools/perf/pmu-events/arch/x86/broadwellde/ |
H A D | bdwde-metrics.json | 4 "MetricExpr": "cstate_pkg@c2\\-residency@ / TSC", 10 "BriefDescription": "C3 residency percent per core", 11 "MetricExpr": "cstate_core@c3\\-residency@ / TSC", 18 "MetricExpr": "cstate_pkg@c3\\-residency@ / TSC", 24 "BriefDescription": "C6 residency percent per core", 25 "MetricExpr": "cstate_core@c6\\-residency@ / TSC", 32 "MetricExpr": "cstate_pkg@c6\\-residency@ / TSC", 38 "BriefDescription": "C7 residency percent per core", 39 "MetricExpr": "cstate_core@c7\\-residency@ / TSC", 46 "MetricExpr": "cstate_pkg@c7\\-residency@ / TSC", [all …]
|
/openbmc/qemu/hw/arm/ |
H A D | bcm2836.c | 9 * See the COPYING file in the top-level directory. 18 #include "target/arm/cpu-qom.h" 22 DEFINE_PROP_UINT32("enabled-cpus", BCM283XBaseState, enabled_cpus, 0); 30 for (n = 0; n < bc->core_count; n++) { in bcm283x_base_init() 31 object_initialize_child(obj, "cpu[*]", &s->cpu[n].core, in bcm283x_base_init() 32 bc->cpu_type); in bcm283x_base_init() 34 if (bc->core_count > 1) { in bcm283x_base_init() 36 qdev_prop_set_uint32(DEVICE(obj), "enabled-cpus", bc->core_count); in bcm283x_base_init() 39 if (bc->ctrl_base) { in bcm283x_base_init() 40 object_initialize_child(obj, "control", &s->control, in bcm283x_base_init() [all …]
|
/openbmc/linux/drivers/of/ |
H A D | cpu.c | 1 // SPDX-License-Identifier: GPL-2.0 2 #include <linux/cpu.h> 7 * of_get_cpu_hwid - Get the hardware ID from a CPU device node 9 * @cpun: CPU number(logical index) for which device node is required 12 * Return: The hardware ID for the CPU node or ~0ULL if not found. 29 * arch_match_cpu_phys_id - Match the given logical CPU and physical id 31 * @cpu: logical cpu index of a core/thread 32 * @phys_id: physical identifier of a core/thread 34 * CPU logical to physical index mapping is architecture specific. 36 * id to logical cpu index. phys_id provided here is usually values read [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/arm/msm/ |
H A 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 …]
|