Scheduling domains
include/sch/domain.h View source View on GitHubStructs
Section titled “Structs”scheduler_group
Section titled “scheduler_group”struct scheduler_group {
struct cpu_mask cpus;
struct cpu_mask idle;
uint64_t load;
uint32_t capacity;
int32_t parent_index;
int32_t topo_index;
}; scheduler_domain
Section titled “scheduler_domain”struct scheduler_domain {
enum topology_level level;
struct scheduler_group *groups;
size_t ngroups;
struct scheduler_domain *parent;
}; Functions
Section titled “Functions”scheduler_domains_init
Section titled “scheduler_domains_init”void scheduler_domains_init(void); scheduler_domain_mark_self_idle
Section titled “scheduler_domain_mark_self_idle”void scheduler_domain_mark_self_idle(bool idle); scheduler_push_target
Section titled “scheduler_push_target”int32_t scheduler_push_target(struct core *from); scheduler_find_idle_cpu_near
Section titled “scheduler_find_idle_cpu_near”int32_t scheduler_find_idle_cpu_near(struct core *from); scheduler_group_find_idle_cpu
Section titled “scheduler_group_find_idle_cpu”int32_t scheduler_group_find_idle_cpu(struct scheduler_group *g); 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);