Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.2 73 lines 2.2 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __PERF_CPUTOPO_H 3#define __PERF_CPUTOPO_H 4 5#include <linux/types.h> 6 7struct cpu_topology { 8 /* The number of unique package_cpus_lists below. */ 9 u32 package_cpus_lists; 10 /* The number of unique die_cpu_lists below. */ 11 u32 die_cpus_lists; 12 /* The number of unique core_cpu_lists below. */ 13 u32 core_cpus_lists; 14 /* 15 * An array of strings where each string is unique and read from 16 * /sys/devices/system/cpu/cpuX/topology/package_cpus_list. From the ABI 17 * each of these is a human-readable list of CPUs sharing the same 18 * physical_package_id. The format is like 0-3, 8-11, 14,17. 19 */ 20 const char **package_cpus_list; 21 /* 22 * An array of string where each string is unique and from 23 * /sys/devices/system/cpu/cpuX/topology/die_cpus_list. From the ABI 24 * each of these is a human-readable list of CPUs within the same die. 25 * The format is like 0-3, 8-11, 14,17. 26 */ 27 const char **die_cpus_list; 28 /* 29 * An array of string where each string is unique and from 30 * /sys/devices/system/cpu/cpuX/topology/core_cpus_list. From the ABI 31 * each of these is a human-readable list of CPUs within the same 32 * core. The format is like 0-3, 8-11, 14,17. 33 */ 34 const char **core_cpus_list; 35}; 36 37struct numa_topology_node { 38 char *cpus; 39 u32 node; 40 u64 mem_total; 41 u64 mem_free; 42}; 43 44struct numa_topology { 45 u32 nr; 46 struct numa_topology_node nodes[]; 47}; 48 49struct hybrid_topology_node { 50 char *pmu_name; 51 char *cpus; 52}; 53 54struct hybrid_topology { 55 u32 nr; 56 struct hybrid_topology_node nodes[]; 57}; 58 59struct cpu_topology *cpu_topology__new(void); 60void cpu_topology__delete(struct cpu_topology *tp); 61/* Determine from the core list whether SMT was enabled. */ 62bool cpu_topology__smt_on(const struct cpu_topology *topology); 63/* Are the sets of SMT siblings all enabled or all disabled in user_requested_cpus. */ 64bool cpu_topology__core_wide(const struct cpu_topology *topology, 65 const char *user_requested_cpu_list); 66 67struct numa_topology *numa_topology__new(void); 68void numa_topology__delete(struct numa_topology *tp); 69 70struct hybrid_topology *hybrid_topology__new(void); 71void hybrid_topology__delete(struct hybrid_topology *tp); 72 73#endif /* __PERF_CPUTOPO_H */