| /linux/tools/lib/perf/ |
| H A D | cpumap.c | 25 RC_STRUCT(perf_cpu_map) *cpus; in perf_cpu_map__alloc() 31 cpus = malloc(sizeof(*cpus) + sizeof(struct perf_cpu) * nr_cpus); in perf_cpu_map__alloc() 32 if (ADD_RC_CHK(result, cpus)) { in perf_cpu_map__alloc() 33 cpus->nr = nr_cpus; in perf_cpu_map__alloc() 34 refcount_set(&cpus->refcnt, 1); in perf_cpu_map__alloc() 41 struct perf_cpu_map *cpus = perf_cpu_map__alloc(1); in perf_cpu_map__new_any_cpu() local 43 if (cpus) in perf_cpu_map__new_any_cpu() 44 RC_CHK_ACCESS(cpus)->map[0].cpu = -1; in perf_cpu_map__new_any_cpu() 46 return cpus; in perf_cpu_map__new_any_cpu() 80 struct perf_cpu_map *cpus; cpu_map__new_sysconf() local 106 struct perf_cpu_map *cpus = NULL; cpu_map__new_sysfs_online() local 119 struct perf_cpu_map *cpus = cpu_map__new_sysfs_online(); perf_cpu_map__new_online_cpus() local 135 __perf_cpu_map__cpu(const struct perf_cpu_map * cpus,int idx) __perf_cpu_map__cpu() argument 143 struct perf_cpu_map *cpus = perf_cpu_map__alloc(nr_cpus); cpu_map__trim_new() local 167 struct perf_cpu_map *cpus = NULL; perf_cpu_map__new() local 247 struct perf_cpu_map *cpus = perf_cpu_map__alloc(1); perf_cpu_map__new_int() local 255 __perf_cpu_map__nr(const struct perf_cpu_map * cpus) __perf_cpu_map__nr() argument 260 perf_cpu_map__cpu(const struct perf_cpu_map * cpus,int idx) perf_cpu_map__cpu() argument 272 perf_cpu_map__nr(const struct perf_cpu_map * cpus) perf_cpu_map__nr() argument 295 perf_cpu_map__idx(const struct perf_cpu_map * cpus,struct perf_cpu cpu) perf_cpu_map__idx() argument 320 perf_cpu_map__has(const struct perf_cpu_map * cpus,struct perf_cpu cpu) perf_cpu_map__has() argument [all...] |
| H A D | evlist.c | 39 if (perf_cpu_map__is_empty(evsel->cpus)) { in __perf_evlist__propagate_maps() 42 * Assume the unset PMU cpus were for a system-wide in __perf_evlist__propagate_maps() 49 * Use the user CPUs unless the evsel is set to be in __perf_evlist__propagate_maps() 52 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps() 56 * should be set to all PMU CPUs. in __perf_evlist__propagate_maps() 58 evsel->cpus = perf_cpu_map__get(evsel->pmu_cpus); in __perf_evlist__propagate_maps() 65 if (evsel->requires_cpu && perf_cpu_map__has_any_cpu(evsel->cpus)) { in __perf_evlist__propagate_maps() 66 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() 67 evsel->cpus = perf_cpu_map__get(evsel->pmu_cpus); in __perf_evlist__propagate_maps() 71 * Globally requested CPUs replace user requested unless the evsel is in __perf_evlist__propagate_maps() [all …]
|
| /linux/tools/testing/selftests/riscv/hwprobe/ |
| H A D | which-cpus.c | 22 "which-cpus: [-h] [<key=value> [<key=value> ...]]\n\n" in help() 25 " <key=value>, outputs the cpulist for cpus which all match the given set\n" in help() 29 static void print_cpulist(cpu_set_t *cpus) in print_cpulist() argument 33 if (!CPU_COUNT(cpus)) { in print_cpulist() 34 printf("cpus: None\n"); in print_cpulist() 38 printf("cpus:"); in print_cpulist() 39 for (int i = 0, c = 0; i < CPU_COUNT(cpus); i++, c++) { in print_cpulist() 40 if (start != end && !CPU_ISSET(c, cpus)) in print_cpulist() 43 while (!CPU_ISSET(c, cpus)) in print_cpulist() 59 static void do_which_cpus(int argc, char **argv, cpu_set_t *cpus) in do_which_cpus() argument 87 cpu_set_t cpus_aff, cpus; main() local [all...] |
| H A D | cbo.c | 6 * subset of cpus, as well as only executing the tests on those cpus. 119 cpu_set_t *cpus = (cpu_set_t *)arg; in test_zicbop() local 128 rc = riscv_hwprobe(&pair, 1, sizeof(cpu_set_t), (unsigned long *)cpus, 0); in test_zicbop() 157 cpu_set_t *cpus = (cpu_set_t *)arg; in test_zicbom() local 161 rc = riscv_hwprobe(&pair, 1, sizeof(cpu_set_t), (unsigned long *)cpus, 0); in test_zicbom() 181 cpu_set_t *cpus = (cpu_set_t *)arg; in test_zicboz() local 186 rc = riscv_hwprobe(&pair, 1, sizeof(cpu_set_t), (unsigned long *)cpus, 0); in test_zicboz() 224 static void check_no_zicbo_cpus(cpu_set_t *cpus, __u64 cbo) in check_no_zicbo_cpus() argument 234 while (i++ < CPU_COUNT(cpus)) { in check_no_zicbo_cpus() 235 while (!CPU_ISSET(c, cpus)) in check_no_zicbo_cpus() [all …]
|
| /linux/drivers/cpuidle/ |
| H A D | coupled.c | 3 * coupled.c - helper functions to enter the same idle state on multiple cpus 24 * cpus cannot be independently powered down, either due to 31 * shared between the cpus (L2 cache, interrupt controller, and 33 * be tightly controlled on both cpus. 36 * WFI state until all cpus are ready to enter a coupled state, at 38 * cpus at approximately the same time. 40 * Once all cpus are ready to enter idle, they are woken by an smp 42 * cpus will find work to do, and choose not to enter idle. A 43 * final pass is needed to guarantee that all cpus will call the 46 * ready counter matches the number of online coupled cpus. If any [all …]
|
| /linux/tools/testing/selftests/cgroup/ |
| H A D | test_cpuset_prs.sh | 25 SUBPARTS_CPUS=$CGROUP2/.__DEBUG__.cpuset.cpus.subpartitions 26 CPULIST=$(cat $CGROUP2/cpuset.cpus.effective) 29 [[ $NR_CPUS -lt 8 ]] && skip_test "Test needs at least 8 cpus available!" 79 echo 0-6 > test/cpuset.cpus 80 echo root > test/cpuset.cpus.partition 81 cat test/cpuset.cpus.partition | grep -q invalid 83 echo member > test/cpuset.cpus.partition 84 echo "" > test/cpuset.cpus 88 # If isolated CPUs have been reserved at boot time (as shown in 89 # cpuset.cpus.isolated), these isolated CPUs should be outside of CPUs 0-8 [all …]
|
| /linux/arch/riscv/kernel/ |
| H A D | sys_hwprobe.c | 33 const struct cpumask *cpus) in hwprobe_arch_id() argument 44 for_each_cpu(cpu, cpus) { in hwprobe_arch_id() 79 const struct cpumask *cpus) in hwprobe_isa_ext0() argument 98 for_each_cpu(cpu, cpus) { in hwprobe_isa_ext0() 184 const struct cpumask *cpus) in hwprobe_isa_ext1() argument 195 for_each_cpu(cpu, cpus) { in hwprobe_isa_ext1() 216 static bool hwprobe_ext0_has(const struct cpumask *cpus, u64 ext) in hwprobe_ext0_has() argument 220 hwprobe_isa_ext0(&pair, cpus); in hwprobe_ext0_has() 225 static u64 hwprobe_misaligned(const struct cpumask *cpus) in hwprobe_misaligned() argument 230 for_each_cpu(cpu, cpus) { in hwprobe_misaligned() [all …]
|
| /linux/Documentation/timers/ |
| H A D | no_hz.rst | 19 2. Omit scheduling-clock ticks on idle CPUs (CONFIG_NO_HZ_IDLE=y or 23 3. Omit scheduling-clock ticks on CPUs that are either idle or that 65 Omit Scheduling-Clock Ticks For Idle CPUs 78 scheduling-clock interrupts to idle CPUs, which is critically important 86 idle CPUs. That said, dyntick-idle mode is not free: 104 Omit Scheduling-Clock Ticks For CPUs With Only One Runnable Task 109 Note that omitting scheduling-clock ticks for CPUs with only one runnable 110 task implies also omitting them for idle CPUs. 113 sending scheduling-clock interrupts to CPUs with a single runnable task, 114 and such CPUs are said to be "adaptive-ticks CPUs". This is important [all …]
|
| /linux/sound/soc/intel/boards/ |
| H A D | sof_board_helpers.c | 184 struct snd_soc_dai_link_component *cpus; in set_ssp_codec_link() 194 /* cpus */ in set_ssp_codec_link() 195 cpus = devm_kzalloc(dev, sizeof(struct snd_soc_dai_link_component), in set_ssp_codec_link() 197 if (!cpus) in set_ssp_codec_link() 202 cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, "ssp%d-port", in set_ssp_codec_link() 205 cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", in set_ssp_codec_link() 208 if (!cpus->dai_name) in set_ssp_codec_link() 211 link->cpus = cpus; in set_ssp_codec_link() 229 struct snd_soc_dai_link_component *cpus; in set_dmic_link() 182 struct snd_soc_dai_link_component *cpus; set_ssp_codec_link() local 227 struct snd_soc_dai_link_component *cpus; set_dmic_link() local 277 struct snd_soc_dai_link_component *cpus, *codecs; set_idisp_hdmi_link() local 336 struct snd_soc_dai_link_component *cpus; set_ssp_amp_link() local 375 struct snd_soc_dai_link_component *cpus; set_bt_offload_link() local 414 struct snd_soc_dai_link_component *cpus; set_hdmi_in_link() local [all...] |
| H A D | sof_pcm512x.c | 226 struct snd_soc_dai_link_component *cpus; in sof_card_dai_links_create() 232 cpus = devm_kcalloc(dev, sof_audio_card_pcm512x.num_links, in sof_card_dai_links_create() 234 if (!links || !cpus) in sof_card_dai_links_create() 256 links[id].cpus = &cpus[id]; in sof_card_dai_links_create() 259 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, in sof_card_dai_links_create() 262 if (!links[id].cpus->dai_name) in sof_card_dai_links_create() 265 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, in sof_card_dai_links_create() 268 if (!links[id].cpus->dai_name) in sof_card_dai_links_create() 277 links[id].cpus in sof_card_dai_links_create() 225 struct snd_soc_dai_link_component *cpus; sof_card_dai_links_create() local [all...] |
| /linux/tools/lib/perf/tests/ |
| H A D | test-cpumap.c | 16 struct perf_cpu_map *cpus; in test_cpumap() local 24 cpus = perf_cpu_map__new_any_cpu(); in test_cpumap() 25 if (!cpus) in test_cpumap() 28 perf_cpu_map__get(cpus); in test_cpumap() 29 perf_cpu_map__put(cpus); in test_cpumap() 30 perf_cpu_map__put(cpus); in test_cpumap() 32 cpus = perf_cpu_map__new_online_cpus(); in test_cpumap() 33 if (!cpus) in test_cpumap() 36 perf_cpu_map__for_each_cpu(cpu, idx, cpus) in test_cpumap() 39 perf_cpu_map__put(cpus); in test_cpumap()
|
| H A D | test-evlist.c | 36 struct perf_cpu_map *cpus; in test_stat_cpu() local 49 cpus = perf_cpu_map__new_online_cpus(); in test_stat_cpu() 50 __T("failed to create cpus", cpus); in test_stat_cpu() 69 perf_evlist__set_maps(evlist, cpus, NULL); in test_stat_cpu() 75 cpus = perf_evsel__cpus(evsel); in test_stat_cpu() 77 for (idx = 0; idx < perf_cpu_map__nr(cpus); idx++) { in test_stat_cpu() 88 perf_cpu_map__put(cpus); in test_stat_cpu() 218 struct perf_cpu_map *cpus; in test_mmap_thread() local 264 cpus = perf_cpu_map__new_any_cpu(); in test_mmap_thread() 265 __T("failed to create cpus", cpus); in test_mmap_thread() [all …]
|
| /linux/arch/riscv/kernel/vdso/ |
| H A D | hwprobe.c | 12 size_t cpusetsize, unsigned long *cpus, 16 size_t cpusetsize, unsigned long *cpus, in riscv_vdso_get_values() argument 20 bool all_cpus = !cpusetsize && !cpus; in riscv_vdso_get_values() 26 * stashed away only for the "all cpus" case. If all CPUs are in riscv_vdso_get_values() 31 return riscv_hwprobe(pairs, pair_count, cpusetsize, cpus, flags); in riscv_vdso_get_values() 50 size_t cpusetsize, unsigned long *cpus, in riscv_vdso_get_cpus() argument 56 unsigned char *c = (unsigned char *)cpus; in riscv_vdso_get_cpus() 61 if (!cpusetsize || !cpus) in riscv_vdso_get_cpus() 72 return riscv_hwprobe(pairs, pair_count, cpusetsize, cpus, flags); in riscv_vdso_get_cpus() 101 size_t cpusetsize, unsigned long *cpus, [all …]
|
| /linux/drivers/clk/sunxi/ |
| H A D | clk-sun9i-cpus.c | 7 * Allwinner A80 CPUS clock driver 52 struct sun9i_a80_cpus_clk *cpus = to_sun9i_a80_cpus_clk(hw); in sun9i_a80_cpus_clk_recalc_rate() local 57 reg = readl(cpus->reg); in sun9i_a80_cpus_clk_recalc_rate() 152 struct sun9i_a80_cpus_clk *cpus = to_sun9i_a80_cpus_clk(hw); in sun9i_a80_cpus_clk_set_rate() local 159 reg = readl(cpus->reg); in sun9i_a80_cpus_clk_set_rate() 167 writel(reg, cpus->reg); in sun9i_a80_cpus_clk_set_rate() 181 * sun9i_a80_cpus_setup() - Setup function for a80 cpus composite clk 189 struct sun9i_a80_cpus_clk *cpus; in sun9i_a80_cpus_setup() local 194 cpus = kzalloc_obj(*cpus); in sun9i_a80_cpus_setup() 195 if (!cpus) in sun9i_a80_cpus_setup() [all …]
|
| /linux/drivers/cpufreq/ |
| H A D | cpufreq-dt.c | 30 cpumask_var_t cpus; member 44 if (cpumask_test_cpu(cpu, priv->cpus)) in cpufreq_dt_find_data() 109 cpumask_copy(policy->cpus, priv->cpus); in cpufreq_init() 176 if (!zalloc_cpumask_var(&priv->cpus, GFP_KERNEL)) in dt_cpufreq_early_init() 179 cpumask_set_cpu(cpu, priv->cpus); in dt_cpufreq_early_init() 197 ret = dev_pm_opp_of_get_sharing_cpus(cpu_dev, priv->cpus); in dt_cpufreq_early_init() 203 * operating-points-v2 not supported, fallback to all CPUs share in dt_cpufreq_early_init() 205 * sharing CPUs. in dt_cpufreq_early_init() 207 if (dev_pm_opp_get_sharing_cpus(cpu_dev, priv->cpus)) in dt_cpufreq_early_init() 212 * Initialize OPP tables for all priv->cpus. They will be shared by in dt_cpufreq_early_init() [all …]
|
| /linux/tools/lib/perf/include/perf/ |
| H A D | cpumap.h | 13 * int16_t limits this to 32767 CPUs. Widening to int requires a libperf 58 LIBPERF_API struct perf_cpu perf_cpu_map__cpu(const struct perf_cpu_map *cpus, unsigned int idx); 63 * the result is the number CPUs in the map plus one if the 66 LIBPERF_API unsigned int perf_cpu_map__nr(const struct perf_cpu_map *cpus); 96 #define perf_cpu_map__for_each_cpu(cpu, idx, cpus) \ 97 for ((idx) = 0, (cpu) = perf_cpu_map__cpu(cpus, idx); \ 98 (idx) < perf_cpu_map__nr(cpus); \ 99 (idx)++, (cpu) = perf_cpu_map__cpu(cpus, idx)) 101 #define perf_cpu_map__for_each_cpu_skip_any(_cpu, idx, cpus) \ argument 102 for ((idx) = 0, (_cpu) = perf_cpu_map__cpu(cpus, id 90 perf_cpu_map__for_each_cpu(cpu,idx,cpus) global() argument 95 perf_cpu_map__for_each_cpu_skip_any(_cpu,idx,cpus) global() argument [all...] |
| /linux/Documentation/scheduler/ |
| H A D | sched-energy.rst | 9 the impact of its decisions on the energy consumed by CPUs. EAS relies on an 10 Energy Model (EM) of the CPUs to select an energy efficient CPU for each task, 59 In short, EAS changes the way CFS tasks are assigned to CPUs. When it is time 64 knowledge about the platform's topology, which include the 'capacity' of CPUs, 72 differentiate CPUs with different computing throughput. The 'capacity' of a CPU 76 tasks and CPUs computed by the Per-Entity Load Tracking (PELT) mechanism. Thanks 79 energy trade-offs. The capacity of CPUs is provided via arch-specific code 99 Let us consider a platform with 12 CPUs, split in 3 performance domains 102 CPUs: 0 1 2 3 4 5 6 7 8 9 10 11 108 containing 6 CPUs. The two root domains are denoted rd1 and rd2 in the [all …]
|
| /linux/Documentation/arch/arm64/ |
| H A D | cpu-hotplug.rst | 9 CPUs online/offline using PSCI. This document is about ACPI firmware allowing 10 CPUs that were not available during boot to be added to the system later. 15 CPU Hotplug on physical systems - CPUs not present at boot 24 In the arm64 world CPUs are not a single device but a slice of the system. 25 There are no systems that support the physical addition (or removal) of CPUs 29 e.g. New CPUs come with new caches, but the platform's cache topology is 30 described in a static table, the PPTT. How caches are shared between CPUs is 42 CPU Hotplug on virtual systems - CPUs not enabled at boot 54 a virtual machine boots with a single CPU, and additional CPUs are added 59 Virtual hotplug is implemented as a firmware policy affecting which CPUs can be [all …]
|
| /linux/tools/perf/tests/ |
| H A D | openat-syscall-all-cpus.c | 28 struct perf_cpu_map *cpus; in test__openat_syscall_event_on_all_cpus() 41 cpus = perf_cpu_map__new_online_cpus(); in test__openat_syscall_event_on_all_cpus() 42 if (cpus == NULL) { in test__openat_syscall_event_on_all_cpus() 57 if (evsel__open(evsel, cpus, threads) < 0) { in test__openat_syscall_event_on_all_cpus() 65 perf_cpu_map__for_each_cpu(cpu, idx, cpus) { in test__openat_syscall_event_on_all_cpus() 70 * without CPU_ALLOC. 1024 cpus in 2010 still seems in test__openat_syscall_event_on_all_cpus() 92 evsel->core.cpus = perf_cpu_map__get(cpus); in test__openat_syscall_event_on_all_cpus() 96 perf_cpu_map__for_each_cpu(cpu, idx, cpus) { in test__openat_syscall_event_on_all_cpus() 122 perf_cpu_map__put(cpus); in test__openat_syscall_event_on_all_cpus() 27 struct perf_cpu_map *cpus; test__openat_syscall_event_on_all_cpus() local [all...] |
| /linux/Documentation/devicetree/bindings/csky/ |
| H A D | cpus.txt | 5 The device tree allows to describe the layout of CPUs in a system through 6 the "cpus" node, which in turn contains a number of subnodes (ie "cpu") 9 Only SMP system need to care about the cpus node and single processor 10 needn't define cpus node at all. 13 cpus and cpu node bindings definition 16 - cpus node 20 The node name must be "cpus". 22 A cpus node must define the following properties: 59 cpus {
|
| /linux/kernel/rcu/ |
| H A D | Kconfig | 16 thousands of CPUs. It also scales down nicely to 26 thousands of CPUs, but for which real-time response 119 context switches on all online CPUs, including idle ones, 136 CPU hotplug code paths. It can force IPIs on online CPUs, 188 large numbers of CPUs. This value must be at least the fourth 213 (hundreds or thousands of CPUs) will instead want to set this 274 bool "Offload RCU callback processing from boot-selected CPUs" 281 callback invocation to energy-efficient CPUs in battery-powered 288 CPUs specified at boot time by the rcu_nocbs parameter. 293 also creates another kthread for each sqrt(nr_cpu_ids) CPUs [all …]
|
| /linux/sound/soc/fsl/ |
| H A D | Kconfig | 4 comment "Common SoC Audio options for Freescale CPUs:" 16 support for the Freescale CPUs. 29 support for the Freescale CPUs. 39 support for the Freescale CPUs. 48 support for the NXP iMX CPUs. 57 support for the Freescale CPUs. 70 support for the Freescale CPUs. 80 (ESAI) support for the Freescale CPUs. 113 iMX CPUs. XCVR is a digital module that supports HDMI2.1 eARC, 134 Say Y if you want to add rpmsg audio support for the Freescale CPUs [all...] |
| /linux/Documentation/arch/arm/ |
| H A D | cluster-pm-race-avoidance.rst | 18 In a system containing multiple CPUs, it is desirable to have the 19 ability to turn off individual CPUs when the system is idle, reducing 22 In a system containing multiple clusters of CPUs, it is also desirable 27 of independently running CPUs, while the OS continues to run. This 92 CPUs in the cluster simultaneously modifying the state. The cluster- 104 referred to as a "CPU". CPUs are assumed to be single-threaded: 107 This means that CPUs fit the basic model closely. 216 A cluster is a group of connected CPUs with some common resources. 217 Because a cluster contains multiple CPUs, it can be doing multiple 272 which exact CPUs within the cluster play these roles. This must [all …]
|
| /linux/tools/testing/selftests/rcutorture/bin/ |
| H A D | jitter.sh | 4 # Alternate sleeping and spinning on randomly selected CPUs. The purpose 74 if cpus=`grep 1 /sys/devices/system/cpu/*/online 2>&1 | 79 cpus= 81 # Do not leave out non-hot-pluggable CPUs 82 cpus="$cpus $nohotplugcpus" 84 cpumask=`awk -v cpus="$cpus" -v me=$me -v n=$n 'BEGIN { 86 ncpus = split(cpus, ca);
|
| /linux/tools/testing/selftests/cpufreq/ |
| H A D | cpu.sh | 17 cpus=$(ls $CPUROOT | grep "cpu[0-9].*") 18 for cpu in $cpus; do 25 cpus=$(ls $CPUROOT | grep "cpu[1-9].*") 26 for cpu in $cpus; do 52 # Reboot CPUs 67 # Prints warning for all CPUs with missing cpufreq directory 73 # Counts CPUs with cpufreq directories
|