This is basically the same thing I tested (I just used "next_node" instead@@ -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;
}