Messages in this thread | | | Subject | Re: [PATCH v5] sched/deadline: fix earliest_dl.next logic | From | Luca Abeni <> | Date | Thu, 3 Dec 2015 09:37:51 +0100 |
| |
Hi,
On 12/03/2015 03:25 AM, Wanpeng Li wrote: [...] >> @@ -202,16 +197,18 @@ static void dequeue_pushable_dl_task(struct rq *rq, >> struct task_struct *p) >> >> next_node = rb_next(&p->pushable_dl_tasks); >> dl_rq->pushable_dl_tasks_leftmost = next_node; >> + if (next_node) >> + dl_rq->earliest_dl.next = rb_entry(next_node, >> + struct task_struct, >> pushable_dl_tasks)->dl.deadline; > > Juri mentioned "updated leftmost", I'm not sure if it means that: > > @@ -195,6 +195,9 @@ static void dequeue_pushable_dl_task(struct rq > *rq, struct task_struct *p) > > next_node = rb_next(&p->pushable_dl_tasks); > dl_rq->pushable_dl_tasks_leftmost = next_node; > + if (dl_rq->pushable_dl_tasks_leftmost) > + dl_rq->earliest_dl.next = > rb_entry(dl_rq->pushable_dl_tasks_leftmost, > + struct task_struct, > pushable_dl_tasks)->dl.deadline; > } This is basically the same thing I tested (I just used "next_node" instead of "dl_rq->pushable_dl_tasks_leftmost" because the name is shorter), so I think it should work.
Luca
| |