Scheduling domains
include/sch/domain.h View source View on GitHubStructs
Section titled “Structs”scheduler_group
Section titled “scheduler_group” struct scheduler_group (6 fields) source
per-group: cluster of CPUs in one domain node
§
uint64_t load aggregated load metric for group (normalized)
§
uint32_t capacity capacity hint for the group (sum of CPU capacities)
§
int32_t parent_index index into sched_domain->groups for parent group (-1 none)
§
int32_t topo_index index of topology_node used to build this group
scheduler_domain
Section titled “scheduler_domain” struct scheduler_domain (4 fields) source
per-domain: list of groups at same level
§
enum topology_level level which topology level this domain maps to
§
struct scheduler_group *groups cc_counted_by(ngroups) §
size_t ngroups §
struct scheduler_domain *parent Functions
Section titled “Functions”scheduler_domains_init
Section titled “scheduler_domains_init”void scheduler_domains_init(void) source scheduler_domain_mark_self_idle
Section titled “scheduler_domain_mark_self_idle”void scheduler_domain_mark_self_idle(bool idle) source scheduler_push_target
Section titled “scheduler_push_target”scheduler_find_idle_cpu_near
Section titled “scheduler_find_idle_cpu_near”scheduler_group_find_idle_cpu
Section titled “scheduler_group_find_idle_cpu”int32_t scheduler_group_find_idle_cpu(struct scheduler_group *g) source scheduler_domain_find_sibling_group
Section titled “scheduler_domain_find_sibling_group”struct scheduler_group * scheduler_domain_find_sibling_group(
struct core *c,
size_t domain_idx
) source