Lines Matching refs:cpu

58 	int cpu;  in topology_set_scale_freq_source()  local
69 for_each_cpu(cpu, cpus) { in topology_set_scale_freq_source()
70 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_set_scale_freq_source()
74 rcu_assign_pointer(per_cpu(sft_data, cpu), data); in topology_set_scale_freq_source()
75 cpumask_set_cpu(cpu, &scale_freq_counters_mask); in topology_set_scale_freq_source()
89 int cpu; in topology_clear_scale_freq_source() local
93 for_each_cpu(cpu, cpus) { in topology_clear_scale_freq_source()
94 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_clear_scale_freq_source()
97 rcu_assign_pointer(per_cpu(sft_data, cpu), NULL); in topology_clear_scale_freq_source()
98 cpumask_clear_cpu(cpu, &scale_freq_counters_mask); in topology_clear_scale_freq_source()
151 void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity) in topology_set_cpu_scale() argument
153 per_cpu(cpu_scale, cpu) = capacity; in topology_set_cpu_scale()
161 int cpu; in topology_set_thermal_pressure() local
163 for_each_cpu(cpu, cpus) in topology_set_thermal_pressure()
164 WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure); in topology_set_thermal_pressure()
172 struct cpu *cpu = container_of(dev, struct cpu, dev); in cpu_capacity_show() local
174 return sysfs_emit(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id)); in cpu_capacity_show()
185 struct device *cpu; in register_cpu_capacity_sysctl() local
188 cpu = get_cpu_device(i); in register_cpu_capacity_sysctl()
189 if (!cpu) { in register_cpu_capacity_sysctl()
194 device_create_file(cpu, &dev_attr_cpu_capacity); in register_cpu_capacity_sysctl()
235 int cpu; in topology_normalize_cpu_scale() local
241 for_each_possible_cpu(cpu) { in topology_normalize_cpu_scale()
242 capacity = raw_capacity[cpu] * per_cpu(freq_factor, cpu); in topology_normalize_cpu_scale()
247 for_each_possible_cpu(cpu) { in topology_normalize_cpu_scale()
248 capacity = raw_capacity[cpu] * per_cpu(freq_factor, cpu); in topology_normalize_cpu_scale()
251 topology_set_cpu_scale(cpu, capacity); in topology_normalize_cpu_scale()
253 cpu, topology_get_cpu_scale(cpu)); in topology_normalize_cpu_scale()
257 bool __init topology_parse_cpu_capacity(struct device_node *cpu_node, int cpu) in topology_parse_cpu_capacity() argument
279 raw_capacity[cpu] = cpu_capacity; in topology_parse_cpu_capacity()
281 cpu_node, raw_capacity[cpu]); in topology_parse_cpu_capacity()
291 per_cpu(freq_factor, cpu) = in topology_parse_cpu_capacity()
319 int cpu; in init_cpu_capacity_callback() local
333 for_each_cpu(cpu, policy->related_cpus) in init_cpu_capacity_callback()
334 per_cpu(freq_factor, cpu) = policy->cpuinfo.max_freq / 1000; in init_cpu_capacity_callback()
403 int cpu; in get_cpu_for_node() local
409 cpu = of_cpu_node_to_id(cpu_node); in get_cpu_for_node()
410 if (cpu >= 0) in get_cpu_for_node()
411 topology_parse_cpu_capacity(cpu_node, cpu); in get_cpu_for_node()
417 return cpu; in get_cpu_for_node()
426 int cpu; in parse_core() local
434 cpu = get_cpu_for_node(t); in parse_core()
435 if (cpu >= 0) { in parse_core()
436 cpu_topology[cpu].package_id = package_id; in parse_core()
437 cpu_topology[cpu].core_id = core_id; in parse_core()
438 cpu_topology[cpu].thread_id = i; in parse_core()
439 } else if (cpu != -ENODEV) { in parse_core()
449 cpu = get_cpu_for_node(core); in parse_core()
450 if (cpu >= 0) { in parse_core()
457 cpu_topology[cpu].package_id = package_id; in parse_core()
458 cpu_topology[cpu].core_id = core_id; in parse_core()
459 } else if (leaf && cpu != -ENODEV) { in parse_core()
539 int cpu; in parse_dt_topology() local
565 for_each_possible_cpu(cpu) in parse_dt_topology()
566 if (cpu_topology[cpu].package_id == -1) in parse_dt_topology()
583 const struct cpumask *cpu_coregroup_mask(int cpu) in cpu_coregroup_mask() argument
585 const cpumask_t *core_mask = cpumask_of_node(cpu_to_node(cpu)); in cpu_coregroup_mask()
588 if (cpumask_subset(&cpu_topology[cpu].core_sibling, core_mask)) { in cpu_coregroup_mask()
590 core_mask = &cpu_topology[cpu].core_sibling; in cpu_coregroup_mask()
592 if (cpu_topology[cpu].llc_id != -1) { in cpu_coregroup_mask()
593 if (cpumask_subset(&cpu_topology[cpu].llc_sibling, core_mask)) in cpu_coregroup_mask()
594 core_mask = &cpu_topology[cpu].llc_sibling; in cpu_coregroup_mask()
600 const struct cpumask *cpu_clustergroup_mask(int cpu) in cpu_clustergroup_mask() argument
602 return &cpu_topology[cpu].cluster_sibling; in cpu_clustergroup_mask()
608 int cpu; in update_siblings_masks() local
611 for_each_online_cpu(cpu) { in update_siblings_masks()
612 cpu_topo = &cpu_topology[cpu]; in update_siblings_masks()
615 cpumask_set_cpu(cpu, &cpuid_topo->llc_sibling); in update_siblings_masks()
624 cpumask_set_cpu(cpu, &cpuid_topo->cluster_sibling); in update_siblings_masks()
629 cpumask_set_cpu(cpu, &cpuid_topo->core_sibling); in update_siblings_masks()
635 cpumask_set_cpu(cpu, &cpuid_topo->thread_sibling); in update_siblings_masks()
639 static void clear_cpu_topology(int cpu) in clear_cpu_topology() argument
641 struct cpu_topology *cpu_topo = &cpu_topology[cpu]; in clear_cpu_topology()
644 cpumask_set_cpu(cpu, &cpu_topo->llc_sibling); in clear_cpu_topology()
647 cpumask_set_cpu(cpu, &cpu_topo->cluster_sibling); in clear_cpu_topology()
650 cpumask_set_cpu(cpu, &cpu_topo->core_sibling); in clear_cpu_topology()
652 cpumask_set_cpu(cpu, &cpu_topo->thread_sibling); in clear_cpu_topology()
657 unsigned int cpu; in reset_cpu_topology() local
659 for_each_possible_cpu(cpu) { in reset_cpu_topology()
660 struct cpu_topology *cpu_topo = &cpu_topology[cpu]; in reset_cpu_topology()
668 clear_cpu_topology(cpu); in reset_cpu_topology()
672 void remove_cpu_topology(unsigned int cpu) in remove_cpu_topology() argument
676 for_each_cpu(sibling, topology_core_cpumask(cpu)) in remove_cpu_topology()
677 cpumask_clear_cpu(cpu, topology_core_cpumask(sibling)); in remove_cpu_topology()
678 for_each_cpu(sibling, topology_sibling_cpumask(cpu)) in remove_cpu_topology()
679 cpumask_clear_cpu(cpu, topology_sibling_cpumask(sibling)); in remove_cpu_topology()
680 for_each_cpu(sibling, topology_cluster_cpumask(cpu)) in remove_cpu_topology()
681 cpumask_clear_cpu(cpu, topology_cluster_cpumask(sibling)); in remove_cpu_topology()
682 for_each_cpu(sibling, topology_llc_cpumask(cpu)) in remove_cpu_topology()
683 cpumask_clear_cpu(cpu, topology_llc_cpumask(sibling)); in remove_cpu_topology()
685 clear_cpu_topology(cpu); in remove_cpu_topology()