.. | .. |
---|
4 | 4 | |
---|
5 | 5 | #include <linux/cpumask.h> |
---|
6 | 6 | |
---|
7 | | -struct cpu_topology { |
---|
8 | | - int thread_id; |
---|
9 | | - int core_id; |
---|
10 | | - int package_id; |
---|
11 | | - int llc_id; |
---|
12 | | - cpumask_t thread_sibling; |
---|
13 | | - cpumask_t core_sibling; |
---|
14 | | - cpumask_t llc_sibling; |
---|
15 | | -}; |
---|
16 | | - |
---|
17 | | -extern struct cpu_topology cpu_topology[NR_CPUS]; |
---|
18 | | - |
---|
19 | | -#define topology_physical_package_id(cpu) (cpu_topology[cpu].package_id) |
---|
20 | | -#define topology_core_id(cpu) (cpu_topology[cpu].core_id) |
---|
21 | | -#define topology_core_cpumask(cpu) (&cpu_topology[cpu].core_sibling) |
---|
22 | | -#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling) |
---|
23 | | -#define topology_llc_cpumask(cpu) (&cpu_topology[cpu].llc_sibling) |
---|
24 | | - |
---|
25 | | -void init_cpu_topology(void); |
---|
26 | | -void store_cpu_topology(unsigned int cpuid); |
---|
27 | | -void remove_cpu_topology(unsigned int cpuid); |
---|
28 | | -const struct cpumask *cpu_coregroup_mask(int cpu); |
---|
29 | | - |
---|
30 | 7 | #ifdef CONFIG_NUMA |
---|
31 | 8 | |
---|
32 | 9 | struct pci_bus; |
---|
.. | .. |
---|
39 | 16 | |
---|
40 | 17 | #include <linux/arch_topology.h> |
---|
41 | 18 | |
---|
42 | | -/* Replace task scheduler's default frequency-invariant accounting */ |
---|
43 | | -#define arch_scale_freq_capacity topology_get_freq_scale |
---|
| 19 | +#ifdef CONFIG_ARM64_AMU_EXTN |
---|
| 20 | +/* |
---|
| 21 | + * Replace task scheduler's default counter-based |
---|
| 22 | + * frequency-invariance scale factor setting. |
---|
| 23 | + */ |
---|
| 24 | +void topology_scale_freq_tick(void); |
---|
| 25 | +#define arch_scale_freq_tick topology_scale_freq_tick |
---|
| 26 | +#endif /* CONFIG_ARM64_AMU_EXTN */ |
---|
44 | 27 | |
---|
45 | | -/* Replace task scheduler's default max-frequency-invariant accounting */ |
---|
46 | | -#define arch_scale_max_freq_capacity topology_get_max_freq_scale |
---|
| 28 | +/* Replace task scheduler's default frequency-invariant accounting */ |
---|
| 29 | +#define arch_set_freq_scale topology_set_freq_scale |
---|
| 30 | +#define arch_scale_freq_capacity topology_get_freq_scale |
---|
| 31 | +#define arch_scale_freq_invariant topology_scale_freq_invariant |
---|
47 | 32 | |
---|
48 | 33 | /* Replace task scheduler's default cpu-invariant accounting */ |
---|
49 | 34 | #define arch_scale_cpu_capacity topology_get_cpu_scale |
---|
.. | .. |
---|
51 | 36 | /* Enable topology flag updates */ |
---|
52 | 37 | #define arch_update_cpu_topology topology_update_cpu_topology |
---|
53 | 38 | |
---|
| 39 | +/* Replace task scheduler's default thermal pressure API */ |
---|
| 40 | +#define arch_scale_thermal_pressure topology_get_thermal_pressure |
---|
| 41 | +#define arch_set_thermal_pressure topology_set_thermal_pressure |
---|
| 42 | + |
---|
54 | 43 | #include <asm-generic/topology.h> |
---|
55 | 44 | |
---|
56 | 45 | #endif /* _ASM_ARM_TOPOLOGY_H */ |
---|