deadline.c (71d29747b0e26f36a50e6a65dc0191ca742b9222) deadline.c (821aecd09e5ad2f8d4c3d8195333d272b392f7d3)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Deadline Scheduling Class (SCHED_DEADLINE)
4 *
5 * Earliest Deadline First (EDF) + Constant Bandwidth Server (CBS).
6 *
7 * Tasks that periodically executes their instances for less than their
8 * runtime won't miss any of their deadlines.

--- 1947 unchanged lines hidden (view full) ---

1956 start_hrtick_dl(rq, p);
1957
1958 if (rq->curr->sched_class != &dl_sched_class)
1959 update_dl_rq_load_avg(rq_clock_pelt(rq), rq, 0);
1960
1961 deadline_queue_push_tasks(rq);
1962}
1963
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Deadline Scheduling Class (SCHED_DEADLINE)
4 *
5 * Earliest Deadline First (EDF) + Constant Bandwidth Server (CBS).
6 *
7 * Tasks that periodically executes their instances for less than their
8 * runtime won't miss any of their deadlines.

--- 1947 unchanged lines hidden (view full) ---

1956 start_hrtick_dl(rq, p);
1957
1958 if (rq->curr->sched_class != &dl_sched_class)
1959 update_dl_rq_load_avg(rq_clock_pelt(rq), rq, 0);
1960
1961 deadline_queue_push_tasks(rq);
1962}
1963
1964static struct sched_dl_entity *pick_next_dl_entity(struct rq *rq,
1965 struct dl_rq *dl_rq)
1964static struct sched_dl_entity *pick_next_dl_entity(struct dl_rq *dl_rq)
1966{
1967 struct rb_node *left = rb_first_cached(&dl_rq->root);
1968
1969 if (!left)
1970 return NULL;
1971
1972 return __node_2_dle(left);
1973}
1974
1975static struct task_struct *pick_task_dl(struct rq *rq)
1976{
1977 struct sched_dl_entity *dl_se;
1978 struct dl_rq *dl_rq = &rq->dl;
1979 struct task_struct *p;
1980
1981 if (!sched_dl_runnable(rq))
1982 return NULL;
1983
1965{
1966 struct rb_node *left = rb_first_cached(&dl_rq->root);
1967
1968 if (!left)
1969 return NULL;
1970
1971 return __node_2_dle(left);
1972}
1973
1974static struct task_struct *pick_task_dl(struct rq *rq)
1975{
1976 struct sched_dl_entity *dl_se;
1977 struct dl_rq *dl_rq = &rq->dl;
1978 struct task_struct *p;
1979
1980 if (!sched_dl_runnable(rq))
1981 return NULL;
1982
1984 dl_se = pick_next_dl_entity(rq, dl_rq);
1983 dl_se = pick_next_dl_entity(dl_rq);
1985 BUG_ON(!dl_se);
1986 p = dl_task_of(dl_se);
1987
1988 return p;
1989}
1990
1991static struct task_struct *pick_next_task_dl(struct rq *rq)
1992{

--- 1049 unchanged lines hidden ---
1984 BUG_ON(!dl_se);
1985 p = dl_task_of(dl_se);
1986
1987 return p;
1988}
1989
1990static struct task_struct *pick_next_task_dl(struct rq *rq)
1991{

--- 1049 unchanged lines hidden ---