LCOV - code coverage report
Current view: top level - include/linux - arch_topology.h (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_real_modules_combined.info Lines: 2 2 100.0 %
Date: 2020-09-30 20:25:40 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0 */
       2                 :            : /*
       3                 :            :  * include/linux/arch_topology.h - arch specific cpu topology information
       4                 :            :  */
       5                 :            : #ifndef _LINUX_ARCH_TOPOLOGY_H_
       6                 :            : #define _LINUX_ARCH_TOPOLOGY_H_
       7                 :            : 
       8                 :            : #include <linux/types.h>
       9                 :            : #include <linux/percpu.h>
      10                 :            : 
      11                 :            : void topology_normalize_cpu_scale(void);
      12                 :            : int topology_update_cpu_topology(void);
      13                 :            : 
      14                 :            : struct device_node;
      15                 :            : bool topology_parse_cpu_capacity(struct device_node *cpu_node, int cpu);
      16                 :            : 
      17                 :            : DECLARE_PER_CPU(unsigned long, cpu_scale);
      18                 :            : 
      19                 :            : struct sched_domain;
      20                 :            : static inline
      21                 :            : unsigned long topology_get_cpu_scale(int cpu)
      22                 :            : {
      23                 :   19133233 :         return per_cpu(cpu_scale, cpu);
      24                 :            : }
      25                 :            : 
      26                 :            : void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity);
      27                 :            : 
      28                 :            : DECLARE_PER_CPU(unsigned long, freq_scale);
      29                 :            : 
      30                 :            : static inline
      31                 :            : unsigned long topology_get_freq_scale(int cpu)
      32                 :            : {
      33                 :   15723852 :         return per_cpu(freq_scale, cpu);
      34                 :            : }
      35                 :            : 
      36                 :            : struct cpu_topology {
      37                 :            :         int thread_id;
      38                 :            :         int core_id;
      39                 :            :         int package_id;
      40                 :            :         int llc_id;
      41                 :            :         cpumask_t thread_sibling;
      42                 :            :         cpumask_t core_sibling;
      43                 :            :         cpumask_t llc_sibling;
      44                 :            : };
      45                 :            : 
      46                 :            : #ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
      47                 :            : extern struct cpu_topology cpu_topology[NR_CPUS];
      48                 :            : 
      49                 :            : #define topology_physical_package_id(cpu)       (cpu_topology[cpu].package_id)
      50                 :            : #define topology_core_id(cpu)           (cpu_topology[cpu].core_id)
      51                 :            : #define topology_core_cpumask(cpu)      (&cpu_topology[cpu].core_sibling)
      52                 :            : #define topology_sibling_cpumask(cpu)   (&cpu_topology[cpu].thread_sibling)
      53                 :            : #define topology_llc_cpumask(cpu)       (&cpu_topology[cpu].llc_sibling)
      54                 :            : void init_cpu_topology(void);
      55                 :            : void store_cpu_topology(unsigned int cpuid);
      56                 :            : const struct cpumask *cpu_coregroup_mask(int cpu);
      57                 :            : void update_siblings_masks(unsigned int cpu);
      58                 :            : void remove_cpu_topology(unsigned int cpuid);
      59                 :            : void reset_cpu_topology(void);
      60                 :            : #endif
      61                 :            : 
      62                 :            : #endif /* _LINUX_ARCH_TOPOLOGY_H_ */

Generated by: LCOV version 1.14