forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
68 lines
1.9 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __PERF_CPUTOPO_H |
|
#define __PERF_CPUTOPO_H |
|
|
|
#include <linux/types.h> |
|
|
|
struct cpu_topology { |
|
/* The number of unique package_cpus_lists below. */ |
|
u32 package_cpus_lists; |
|
/* The number of unique die_cpu_lists below. */ |
|
u32 die_cpus_lists; |
|
/* The number of unique core_cpu_lists below. */ |
|
u32 core_cpus_lists; |
|
/* |
|
* An array of strings where each string is unique and read from |
|
* /sys/devices/system/cpu/cpuX/topology/package_cpus_list. From the ABI |
|
* each of these is a human-readable list of CPUs sharing the same |
|
* physical_package_id. The format is like 0-3, 8-11, 14,17. |
|
*/ |
|
const char **package_cpus_list; |
|
/* |
|
* An array of string where each string is unique and from |
|
* /sys/devices/system/cpu/cpuX/topology/die_cpus_list. From the ABI |
|
* each of these is a human-readable list of CPUs within the same die. |
|
* The format is like 0-3, 8-11, 14,17. |
|
*/ |
|
const char **die_cpus_list; |
|
/* |
|
* An array of string where each string is unique and from |
|
* /sys/devices/system/cpu/cpuX/topology/core_cpus_list. From the ABI |
|
* each of these is a human-readable list of CPUs within the same |
|
* core. The format is like 0-3, 8-11, 14,17. |
|
*/ |
|
const char **core_cpus_list; |
|
}; |
|
|
|
struct numa_topology_node { |
|
char *cpus; |
|
u32 node; |
|
u64 mem_total; |
|
u64 mem_free; |
|
}; |
|
|
|
struct numa_topology { |
|
u32 nr; |
|
struct numa_topology_node nodes[]; |
|
}; |
|
|
|
struct hybrid_topology_node { |
|
char *pmu_name; |
|
char *cpus; |
|
}; |
|
|
|
struct hybrid_topology { |
|
u32 nr; |
|
struct hybrid_topology_node nodes[]; |
|
}; |
|
|
|
struct cpu_topology *cpu_topology__new(void); |
|
void cpu_topology__delete(struct cpu_topology *tp); |
|
|
|
struct numa_topology *numa_topology__new(void); |
|
void numa_topology__delete(struct numa_topology *tp); |
|
|
|
struct hybrid_topology *hybrid_topology__new(void); |
|
void hybrid_topology__delete(struct hybrid_topology *tp); |
|
|
|
#endif /* __PERF_CPUTOPO_H */
|
|
|