Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 6 Nov 2023 18:05:46 +0100 | Subject | Re: [PATCH v5 6/7] sched/deadline: Deferrable dl server | From | Daniel Bristot de Oliveira <> |
| |
On 11/6/23 15:55, Peter Zijlstra wrote: > On Sat, Nov 04, 2023 at 11:59:23AM +0100, Daniel Bristot de Oliveira wrote: > >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index b15f7f376a67..399237cd9f59 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -1201,6 +1201,8 @@ static void update_curr(struct cfs_rq *cfs_rq) >> account_group_exec_runtime(curtask, delta_exec); >> if (curtask->server) >> dl_server_update(curtask->server, delta_exec); >> + else >> + dl_server_update(&rq_of(cfs_rq)->fair_server, delta_exec); >> } >> >> account_cfs_rq_runtime(cfs_rq, delta_exec); > > @@ -1195,8 +1196,17 @@ static void update_curr(struct cfs_rq *c > update_deadline(cfs_rq, curr); > update_min_vruntime(cfs_rq); > > - if (entity_is_task(curr)) > - update_curr_task(task_of(curr), delta_exec); > + if (entity_is_task(curr)) { > + struct task_struct *p = task_of(curr); > + update_curr_task(p, delta_exec); > + /* > + * Any fair task that runs outside of fair_server should > + * account against fair_server such that it can account for > + * this time and possible avoid running this period. > + */ > + if (p->dl_server != &rq->fair_server) > + dl_server_update(&rq->fair_server, delta_exec); aren't we missing: else dl_server_update(&rq_of(cfs_rq)->fair_server, delta_exec);
or am I missing something? :-)
> + } > > account_cfs_rq_runtime(cfs_rq, delta_exec); > }
| ![\](/images/icornerr.gif) |