blob: 769cffae6d74437e40612d7b241f15a619d3dacd [file] [log] [blame]
/* Reduced from linux-5.10.162's kernel/sched/fair.c,
with !CONFIG_FAIR_GROUP_SCHED. */
#define NULL ((void*)0)
struct load_weight
{
unsigned long weight;
/* [...snip...] */
};
struct sched_entity
{
struct load_weight load;
/* [...snip...] */
unsigned int on_rq;
/* [...snip...] */
};
struct cfs_rq
{
/* [...snip...] */
unsigned int nr_running;
/* [...snip...] */
};
extern int
__calc_delta(int delta_exec, unsigned long weight /* [...snip...] */);
/* !CONFIG_FAIR_GROUP_SCHED */
#define for_each_sched_entity(se) \
for (; se; se = (struct sched_entity *)NULL)
extern struct cfs_rq*
cfs_rq_of(struct sched_entity* se);
extern int
__sched_period(unsigned long nr_running);
int
sched_slice(struct cfs_rq* cfs_rq, struct sched_entity* se)
{
unsigned int nr_running = cfs_rq->nr_running;
int slice;
/* [...snip...] */
slice = __sched_period(nr_running + !se->on_rq);
for_each_sched_entity(se) {
/* [...snip...] */
cfs_rq = cfs_rq_of(se);
/* [...snip...] */
slice = __calc_delta(slice, se->load.weight);
}
/* [...snip...] */
return slice;
}