Home
last modified time | relevance | path

Searched +full:per +full:- +full:cpu +full:- +full:cluster (Results 1 – 25 of 218) sorted by relevance

123456789

/kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpufreq/
Dapple,cluster-cpufreq.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Apple SoC cluster cpufreq device
10 - Hector Martin <marcan@marcan.st>
13 Apple SoCs (e.g. M1) have a per-cpu-cluster DVFS controller that is part of
14 the cluster management register block. This binding uses the standard
15 operating-points-v2 table to define the CPU performance states, with the
16 opp-level property specifying the hardware p-state index for that level.
[all …]
/kernel/linux/linux-6.6/drivers/clk/mvebu/
Dap-cpu-clk.c1 // SPDX-License-Identifier: GPL-2.0+
3 * Marvell Armada AP CPU Clock Controller
11 #define pr_fmt(fmt) "ap-cpu-clk: " fmt
13 #include <linux/clk-provider.h>
33 * struct cpu_dfs_regs: CPU DFS register mapping
34 * @divider_reg: full integer ratio from PLL frequency to CPU clock frequency
53 /* AP806 CPU DFS register mapping*/
91 /* AP807 CPU DFS register mapping */
127 * struct ap806_clk: CPU cluster clock controller instance
128 * @cluster: Cluster clock controller index
[all …]
/kernel/linux/linux-5.10/drivers/clk/mvebu/
Dap-cpu-clk.c1 // SPDX-License-Identifier: GPL-2.0+
3 * Marvell Armada AP CPU Clock Controller
11 #define pr_fmt(fmt) "ap-cpu-clk: " fmt
13 #include <linux/clk-provider.h>
34 * struct cpu_dfs_regs: CPU DFS register mapping
35 * @divider_reg: full integer ratio from PLL frequency to CPU clock frequency
54 /* AP806 CPU DFS register mapping*/
92 /* AP807 CPU DFS register mapping */
128 * struct ap806_clk: CPU cluster clock controller instance
129 * @cluster: Cluster clock controller index
[all …]
/kernel/linux/linux-6.6/arch/x86/kernel/apic/
Dx2apic_cluster.c1 // SPDX-License-Identifier: GPL-2.0
17 * Using per cpu variable would cost one cache line per cpu.
29 static void x2apic_send_IPI(int cpu, int vector) in x2apic_send_IPI() argument
31 u32 dest = x86_cpu_to_logical_apicid[cpu]; in x2apic_send_IPI()
41 unsigned int cpu, clustercpu; in __x2apic_send_IPI_mask() local
52 /* If IPI should not be sent to self, clear current CPU */ in __x2apic_send_IPI_mask()
56 /* Collapse cpus in a cluster so a single IPI per cluster is sent */ in __x2apic_send_IPI_mask()
57 for_each_cpu(cpu, tmpmsk) { in __x2apic_send_IPI_mask()
58 struct cpumask *cmsk = per_cpu(cluster_masks, cpu); in __x2apic_send_IPI_mask()
68 /* Remove cluster CPUs from tmpmask */ in __x2apic_send_IPI_mask()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpu/
Dcpu-topology.txt2 CPU topology binding description
6 1 - Introduction
12 - socket
13 - cluster
14 - core
15 - thread
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
25 CPU topology bindings allow one to associate cpu nodes with hierarchical groups
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/cpu/
Dcpu-topology.txt2 CPU topology binding description
6 1 - Introduction
12 - socket
13 - cluster
14 - core
15 - thread
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
25 CPU topology bindings allow one to associate cpu nodes with hierarchical groups
[all …]
/kernel/linux/linux-6.6/arch/arm/mach-versatile/
Dspc.c1 // SPDX-License-Identifier: GPL-2.0-only
12 #include <linux/clk-provider.h>
14 #include <linux/cpu.h>
28 #define SPCLOG "vexpress-spc: "
39 /* SPC wake-up IRQs status and mask */
46 /* SPC per-CPU mailboxes */
50 /* SPC CPU/cluster reset statue */
52 #define STANDBYWFI_STAT_A15_CPU_MASK(cpu) (1 << (cpu)) argument
53 #define STANDBYWFI_STAT_A7_CPU_MASK(cpu) (1 << (3 + (cpu))) argument
68 /* wake-up interrupt masks */
[all …]
/kernel/linux/linux-5.10/drivers/perf/
Dqcom_l2_pmu.c1 // SPDX-License-Identifier: GPL-2.0-only
2 /* Copyright (c) 2015-2017 The Linux Foundation. All rights reserved.
26 #include <soc/qcom/kryo-l2-accessors.h>
121 * The cache is made up of one or more clusters, each cluster has its own PMU.
122 * Each cluster is associated with one or more CPUs.
125 * Events can be envisioned as a 2-dimensional array. Each column represents
143 /* The CPU that is used for collecting events on this cluster */
145 /* All the CPUs associated with this cluster */
164 struct l2cache_pmu *l2cache_pmu, int cpu) in get_cluster_pmu() argument
166 return *per_cpu_ptr(l2cache_pmu->pmu_cluster, cpu); in get_cluster_pmu()
[all …]
/kernel/linux/linux-6.6/drivers/perf/
Dqcom_l2_pmu.c1 // SPDX-License-Identifier: GPL-2.0-only
2 /* Copyright (c) 2015-2017 The Linux Foundation. All rights reserved.
26 #include <soc/qcom/kryo-l2-accessors.h>
121 * The cache is made up of one or more clusters, each cluster has its own PMU.
122 * Each cluster is associated with one or more CPUs.
125 * Events can be envisioned as a 2-dimensional array. Each column represents
143 /* The CPU that is used for collecting events on this cluster */
145 /* All the CPUs associated with this cluster */
164 struct l2cache_pmu *l2cache_pmu, int cpu) in get_cluster_pmu() argument
166 return *per_cpu_ptr(l2cache_pmu->pmu_cluster, cpu); in get_cluster_pmu()
[all …]
/kernel/linux/linux-6.6/arch/mips/kernel/
Dcacheinfo.c1 // SPDX-License-Identifier: GPL-2.0-only
10 leaf->type = c_type; \
11 leaf->level = c_level; \
12 leaf->coherency_line_size = c->cache.linesz; \
13 leaf->number_of_sets = c->cache.sets; \
14 leaf->ways_of_associativity = c->cache.ways; \
15 leaf->size = c->cache.linesz * c->cache.sets * \
16 c->cache.ways; \
20 int init_cache_level(unsigned int cpu) in init_cache_level() argument
23 struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); in init_cache_level()
[all …]
/kernel/linux/linux-5.10/arch/arm/mach-vexpress/
Dspc.c20 #include <linux/clk-provider.h>
22 #include <linux/cpu.h>
36 #define SPCLOG "vexpress-spc: "
47 /* SPC wake-up IRQs status and mask */
54 /* SPC per-CPU mailboxes */
58 /* SPC CPU/cluster reset statue */
60 #define STANDBYWFI_STAT_A15_CPU_MASK(cpu) (1 << (cpu)) argument
61 #define STANDBYWFI_STAT_A7_CPU_MASK(cpu) (1 << (3 + (cpu))) argument
76 /* wake-up interrupt masks */
79 /* TC2 static dual-cluster configuration */
[all …]
/kernel/linux/linux-5.10/arch/mips/kernel/
Dcacheinfo.c1 // SPDX-License-Identifier: GPL-2.0-only
10 leaf->type = c_type; \
11 leaf->level = c_level; \
12 leaf->coherency_line_size = c->cache.linesz; \
13 leaf->number_of_sets = c->cache.sets; \
14 leaf->ways_of_associativity = c->cache.ways; \
15 leaf->size = c->cache.linesz * c->cache.sets * \
16 c->cache.ways; \
20 int init_cache_level(unsigned int cpu) in init_cache_level() argument
23 struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); in init_cache_level()
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/marvell/
Dap80x-system-controller.txt6 registers giving access to numerous features: clocks, pin-muxing and
11 - compatible: must be: "syscon", "simple-mfd";
12 - reg: register area of the AP80x system controller
18 -------
24 - 0: reference clock of CPU cluster 0
25 - 1: reference clock of CPU cluster 1
26 - 2: fixed PLL at 1200 Mhz
27 - 3: MSS clock, derived from the fixed PLL
31 - compatible: must be one of:
32 * "marvell,ap806-clock"
[all …]
/kernel/linux/linux-6.6/Documentation/admin-guide/pm/
Dintel_uncore_frequency_scaling.rst1 .. SPDX-License-Identifier: GPL-2.0
8 :Copyright: |copy| 2022-2023 Intel Corporation
13 ------------
22 the scaling min/max frequencies via cpufreq sysfs to improve CPU performance.
30 ---------------
33 `/sys/devices/system/cpu/intel_uncore_frequency/`.
36 uncore scaling control is per die in multiple die/package SoCs or per
37 package for single die per package SoCs. The name represents the
45 This is a read-only attribute. If users adjust max_freq_khz,
50 This is a read-only attribute. If users adjust min_freq_khz,
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/arm/marvell/
Dap80x-system-controller.txt6 registers giving access to numerous features: clocks, pin-muxing and
11 - compatible: must be: "syscon", "simple-mfd";
12 - reg: register area of the AP80x system controller
18 -------
24 - 0: reference clock of CPU cluster 0
25 - 1: reference clock of CPU cluster 1
26 - 2: fixed PLL at 1200 Mhz
27 - 3: MSS clock, derived from the fixed PLL
31 - compatible: must be one of:
32 * "marvell,ap806-clock"
[all …]
/kernel/linux/linux-5.10/arch/x86/kernel/apic/
Dx2apic_cluster.c1 // SPDX-License-Identifier: GPL-2.0
28 static void x2apic_send_IPI(int cpu, int vector) in x2apic_send_IPI() argument
30 u32 dest = per_cpu(x86_cpu_to_logical_apicid, cpu); in x2apic_send_IPI()
40 unsigned int cpu, clustercpu; in __x2apic_send_IPI_mask() local
51 /* If IPI should not be sent to self, clear current CPU */ in __x2apic_send_IPI_mask()
55 /* Collapse cpus in a cluster so a single IPI per cluster is sent */ in __x2apic_send_IPI_mask()
56 for_each_cpu(cpu, tmpmsk) { in __x2apic_send_IPI_mask()
57 struct cluster_mask *cmsk = per_cpu(cluster_masks, cpu); in __x2apic_send_IPI_mask()
60 for_each_cpu_and(clustercpu, tmpmsk, &cmsk->mask) in __x2apic_send_IPI_mask()
66 __x2apic_send_IPI_dest(dest, vector, apic->dest_logical); in __x2apic_send_IPI_mask()
[all …]
/kernel/linux/linux-6.6/arch/arm/include/asm/
Dmcpm.h1 /* SPDX-License-Identifier: GPL-2.0-only */
6 * Copyright: (C) 2012-2013 Linaro Limited
13 * Maximum number of possible clusters / CPUs per cluster.
39 * This is used to indicate where the given CPU from given cluster should
40 * branch once it is ready to re-enter the kernel using ptr, or NULL if it
41 * should be gated. A gated CPU is held in a WFE loop until its vector
44 void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr);
48 * from very early assembly code before the CPU is ungated. The
51 void mcpm_set_early_poke(unsigned cpu, unsigned cluster,
55 * CPU/cluster power operations API for higher subsystems to use.
[all …]
/kernel/linux/linux-5.10/arch/arm/include/asm/
Dmcpm.h1 /* SPDX-License-Identifier: GPL-2.0-only */
6 * Copyright: (C) 2012-2013 Linaro Limited
13 * Maximum number of possible clusters / CPUs per cluster.
39 * This is used to indicate where the given CPU from given cluster should
40 * branch once it is ready to re-enter the kernel using ptr, or NULL if it
41 * should be gated. A gated CPU is held in a WFE loop until its vector
44 void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr);
48 * from very early assembly code before the CPU is ungated. The
51 void mcpm_set_early_poke(unsigned cpu, unsigned cluster,
55 * CPU/cluster power operations API for higher subsystems to use.
[all …]
/kernel/linux/linux-5.10/drivers/cpufreq/
Dtegra194-cpufreq.c1 // SPDX-License-Identifier: GPL-2.0
6 #include <linux/cpu.h>
9 #include <linux/dma-mapping.h>
19 #include <soc/tegra/bpmp-abi.h>
31 enum cluster { enum
46 u32 cpu; member
59 static void get_cpu_cluster(void *cluster) in get_cpu_cluster() argument
63 *((uint32_t *)cluster) = MPIDR_AFFINITY_LEVEL(mpidr, 1); in get_cpu_cluster()
67 * Read per-core Read-only system register NVFREQ_FEEDBACK_EL1.
87 return nltbl->ref_clk_hz / KHZ * ndiv / (nltbl->pdiv * nltbl->mdiv); in map_ndiv_to_freq()
[all …]
/kernel/linux/linux-5.10/drivers/clocksource/
Dtimer-nps.c14 * - Redistributions of source code must retain the above
18 * - Redistributions in binary form must reproduce the above
39 #include <linux/cpu.h>
46 /* This array is per cluster of CPUs (Each NPS400 cluster got 256 CPUs) */
74 return -EINVAL; in nps_get_timer_clk()
82 int cluster = raw_smp_processor_id() >> NPS_CLUSTER_OFFSET; in nps_clksrc_read() local
84 return (u64)ioread32be(nps_msu_reg_low_addr[cluster]); in nps_clksrc_read()
89 int ret, cluster; in nps_setup_clocksource() local
94 for (cluster = 0; cluster < NPS_CLUSTER_NUM; cluster++) in nps_setup_clocksource()
95 nps_msu_reg_low_addr[cluster] = in nps_setup_clocksource()
[all …]
/kernel/linux/linux-6.6/include/linux/
Dswap.h1 /* SPDX-License-Identifier: GPL-2.0 */
15 #include <linux/page-flags.h>
29 #define SWAP_FLAG_DISCARD_ONCE 0x20000 /* discard swap area at swapon-time */
30 #define SWAP_FLAG_DISCARD_PAGES 0x40000 /* discard page-clusters after use */
39 return current->flags & PF_KSWAPD; in current_is_kswapd()
47 * on 32-bit-pgoff_t architectures. And that assumes that the architecture packs
70 * device memory that is unaddressable (inaccessible) by CPU, so that we can
73 * When a page is migrated from CPU to device, we set the CPU page table entry
76 * When a page is mapped by the device for exclusive access we set the CPU page
118 ((1 << MAX_SWAPFILES_SHIFT) - SWP_DEVICE_NUM - \
[all …]
/kernel/linux/linux-6.6/Documentation/ABI/stable/
Dsysfs-devices-system-cpu1 What: /sys/devices/system/cpu/dscr_default
2 Date: 13-May-2014
6 /sys/devices/system/cpu/cpuN/dscr on all CPUs.
9 all per-CPU defaults at the same time.
12 What: /sys/devices/system/cpu/cpu[0-9]+/dscr
13 Date: 13-May-2014
17 a CPU.
22 on any CPU where it executes (overriding the value described
27 What: /sys/devices/system/cpu/cpuX/topology/physical_package_id
33 What: /sys/devices/system/cpu/cpuX/topology/die_id
[all …]
/kernel/linux/linux-5.10/include/linux/
Dswap.h1 /* SPDX-License-Identifier: GPL-2.0 */
14 #include <linux/page-flags.h>
27 #define SWAP_FLAG_DISCARD_ONCE 0x20000 /* discard swap area at swapon-time */
28 #define SWAP_FLAG_DISCARD_PAGES 0x40000 /* discard page-clusters after use */
37 return current->flags & PF_KSWAPD; in current_is_kswapd()
45 * on 32-bit-pgoff_t architectures. And that assumes that the architecture packs
59 * device memory that is unaddressable (inaccessible) by CPU, so that we can
62 * When a page is migrated from CPU to device, we set the CPU page table entry
95 ((1 << MAX_SWAPFILES_SHIFT) - SWP_DEVICE_NUM - \
96 SWP_MIGRATION_NUM - SWP_HWPOISON_NUM)
[all …]
/kernel/linux/linux-6.6/drivers/cpufreq/
Dvexpress-spc-cpufreq.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2013 - 2019 ARM Ltd.
15 #include <linux/cpu.h>
45 #define ACTUAL_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq << 1 : freq) argument
46 #define VIRT_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq >> 1 : freq) argument
60 static inline int raw_cpu_to_cluster(int cpu) in raw_cpu_to_cluster() argument
62 return topology_physical_package_id(cpu); in raw_cpu_to_cluster()
65 static inline int cpu_to_cluster(int cpu) in cpu_to_cluster() argument
68 MAX_CLUSTERS : raw_cpu_to_cluster(cpu); in cpu_to_cluster()
71 static unsigned int find_cluster_maxfreq(int cluster) in find_cluster_maxfreq() argument
[all …]
Dtegra194-cpufreq.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2020 - 2022, NVIDIA CORPORATION. All rights reserved
6 #include <linux/cpu.h>
9 #include <linux/dma-mapping.h>
20 #include <soc/tegra/bpmp-abi.h>
30 #define CORE_OFFSET(cpu) (cpu * 8) argument
32 #define SCRATCH_FREQ_CORE_REG(data, cpu) (data->regs + CMU_CLKS_BASE + CORE_OFFSET(cpu)) argument
36 (data->regs + (MMCRAB_CLUSTER_BASE(cl) + data->soc->actmon_cntr_base))
37 #define CORE_ACTMON_CNTR_REG(data, cl, cpu) (CLUSTER_ACTMON_BASE(data, cl) + CORE_OFFSET(cpu)) argument
43 u32 cpu; member
[all …]

123456789