Topology
| Member Type | Member Name |
|---|---|
bool | uses_large |
union { _Atomic uint64_t small; _Atomic uint64_t *large; } | None |
size_t | nbits |
| Member Type | Member Name |
|---|---|
uint8_t | level |
uint8_t | type |
uint32_t | size_kb |
uint32_t | line_size |
uint32_t | cores_sharing |
| Member Type | Member Name |
|---|---|
uint32_t | package_id |
struct cpu_mask | cores |
| Member Type | Member Name |
|---|---|
enum topology_level | level |
uint64_t | id |
uint64_t | parent |
struct topology_node | *parent_node |
int32_t | first_child |
int32_t | nr_children |
struct cpu_mask | cpus |
struct cpu_mask | idle |
struct core | *core |
union { struct numa_node *numa; struct topology_cache_info *cache; struct topology_package_info *package; } | data |
| Member Type | Member Name |
|---|---|
struct topology_node | *level[TOPOLOGY_LEVEL_MAX] |
uint16_t | count[TOPOLOGY_LEVEL_MAX] |
| Name | Value |
|---|---|
TOPOLOGY_LEVEL_SMT | None |
TOPOLOGY_LEVEL_CORE | None |
TOPOLOGY_LEVEL_NUMA | None |
TOPOLOGY_LEVEL_LLC | None |
TOPOLOGY_LEVEL_PACKAGE | None |
TOPOLOGY_LEVEL_MACHINE | None |
TOPOLOGY_LEVEL_MAX | None |
TOPOLOGY_LEVEL_COUNT | TOPOLOGY_LEVEL_MAX |
struct cpu_mask *cpu_mask_create(void)boolcpu_mask_init(struct cpu_mask*m,size_t nbits)voidcpu_mask_set(struct cpu_mask*m,size_t cpu)voidcpu_mask_set_all(struct cpu_mask*m)voidcpu_mask_clear(struct cpu_mask*m,size_t cpu)boolcpu_mask_test(struct cpu_mask*m,size_t cpu)voidcpu_mask_or(struct cpu_mask*dst,struct cpu_mask*b)boolcpu_mask_empty(struct cpu_mask*mask)voidtopology_mark_core_idle(size_t cpu_id,bool idle)struct core *topology_find_idle_core(struct core*local_core,enum topology_levelmax_search)struct core * *topology_get_smts_under_numa(struct topology_node*numa,size_t *count)const char *topology_level_name(enum topology_levell)