27struct SubProcessDescriptor;
29typedef struct BalancePolicy {
31 int (*init)(
struct SubProcessDescriptor *spd);
32 int (*finalize)(
struct SubProcessDescriptor *spd);
33 int (*enable)(
const struct SubProcessDescriptor *spd);
34 int (*disable)(
const struct SubProcessDescriptor *spd);
38 int (*into_communication)(
const struct SubProcessDescriptor *spd);
39 int (*out_of_communication)(
const struct SubProcessDescriptor *spd);
40 int (*into_blocking_call)(
const struct SubProcessDescriptor *spd);
41 int (*out_of_blocking_call)(
const struct SubProcessDescriptor *spd);
43 int (*
lend)(
const struct SubProcessDescriptor *spd);
44 int (*lend_cpu)(
const struct SubProcessDescriptor *spd,
int cpuid);
45 int (*
lend_cpus)(
const struct SubProcessDescriptor *spd,
int ncpus);
46 int (*
lend_cpu_mask)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *mask);
48 int (*
reclaim)(
const struct SubProcessDescriptor *spd);
49 int (*reclaim_cpu)(
const struct SubProcessDescriptor *spd,
int cpuid);
50 int (*
reclaim_cpus)(
const struct SubProcessDescriptor *spd,
int ncpus);
51 int (*
reclaim_cpu_mask)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *mask);
53 int (*acquire_cpu)(
const struct SubProcessDescriptor *spd,
int cpuid);
54 int (*
acquire_cpus)(
const struct SubProcessDescriptor *spd,
int ncpus);
55 int (*
acquire_cpu_mask)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *mask);
58 int (*
borrow)(
const struct SubProcessDescriptor *spd);
59 int (*borrow_cpu)(
const struct SubProcessDescriptor *spd,
int cpuid);
60 int (*
borrow_cpus)(
const struct SubProcessDescriptor *spd,
int ncpus);
61 int (*
borrow_cpu_mask)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *mask);
64 int (*
return_all)(
const struct SubProcessDescriptor *spd);
65 int (*return_cpu)(
const struct SubProcessDescriptor *spd,
int cpuid);
66 int (*
return_cpu_mask)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *mask);
69 int (*update_ownership)(
const struct SubProcessDescriptor *spd,
const cpu_set_t *process_mask);
int acquire_cpus_in_mask(const subprocess_descriptor_t *spd, int ncpus, const cpu_set_t *mask)
Definition: DLB_kernel.c:569
int reclaim_cpu_mask(const subprocess_descriptor_t *spd, const cpu_set_t *mask)
Definition: DLB_kernel.c:502
int lend(const subprocess_descriptor_t *spd)
Definition: DLB_kernel.c:386
int set_max_parallelism(subprocess_descriptor_t *spd, int max)
Definition: DLB_kernel.c:317
int reclaim(const subprocess_descriptor_t *spd)
Definition: DLB_kernel.c:454
int borrow_cpus(const subprocess_descriptor_t *spd, int ncpus)
Definition: DLB_kernel.c:620
int return_all(const subprocess_descriptor_t *spd)
Definition: DLB_kernel.c:670
int unset_max_parallelism(subprocess_descriptor_t *spd)
Definition: DLB_kernel.c:333
int check_cpu_availability(const subprocess_descriptor_t *spd, int cpuid)
Definition: DLB_kernel.c:807
int borrow(const subprocess_descriptor_t *spd)
Definition: DLB_kernel.c:588
int lend_cpus(const subprocess_descriptor_t *spd, int ncpus)
Definition: DLB_kernel.c:419
int acquire_cpu_mask(const subprocess_descriptor_t *spd, const cpu_set_t *mask)
Definition: DLB_kernel.c:553
int borrow_cpu_mask(const subprocess_descriptor_t *spd, const cpu_set_t *mask)
Definition: DLB_kernel.c:636
int acquire_cpus(const subprocess_descriptor_t *spd, int ncpus)
Definition: DLB_kernel.c:537
int lend_cpu_mask(const subprocess_descriptor_t *spd, const cpu_set_t *mask)
Definition: DLB_kernel.c:435
int reclaim_cpus(const subprocess_descriptor_t *spd, int ncpus)
Definition: DLB_kernel.c:486
int return_cpu_mask(const subprocess_descriptor_t *spd, const cpu_set_t *mask)
Definition: DLB_kernel.c:698
int borrow_cpus_in_mask(const subprocess_descriptor_t *spd, int ncpus, const cpu_set_t *mask)
Definition: DLB_kernel.c:652
void set_lb_funcs(balance_policy_t *lb_funcs, policy_t policy)
Definition: lb_funcs.c:34
Definition: lb_funcs.h:29
policy_t
Definition: types.h:123