Re: [PATCH 2/2] sched/deadline.c: pick and check task if double_lock_balance() unlock the rq

2018-04-12 Thread Steven Rostedt
On Thu, 12 Apr 2018 18:58:55 +0800 Li Bin wrote: > @@ -1965,11 +1985,9 @@ static struct rq *find_lock_later_rq(struct > task_struct *task, struct rq *rq) > > /* Retry if something changed. */ > if (double_lock_balance(rq, later_rq)) { > -

Re: [PATCH 2/2] sched/deadline.c: pick and check task if double_lock_balance() unlock the rq

2018-04-12 Thread Steven Rostedt
On Thu, 12 Apr 2018 18:58:55 +0800 Li Bin wrote: > @@ -1965,11 +1985,9 @@ static struct rq *find_lock_later_rq(struct > task_struct *task, struct rq *rq) > > /* Retry if something changed. */ > if (double_lock_balance(rq, later_rq)) { > - if

[PATCH 2/2] sched/deadline.c: pick and check task if double_lock_balance() unlock the rq

2018-04-12 Thread Li Bin
push_dl_task() pick the first pushable task and find an eligible later_rq, then double_lock_balance(rq, lowest_rq). So if double_lock_balance() unlock the rq (when double_lock_balance() return 1), we have to check if this task is still on the rq. The problem is that the check conditions are not

[PATCH 2/2] sched/deadline.c: pick and check task if double_lock_balance() unlock the rq

2018-04-12 Thread Li Bin
push_dl_task() pick the first pushable task and find an eligible later_rq, then double_lock_balance(rq, lowest_rq). So if double_lock_balance() unlock the rq (when double_lock_balance() return 1), we have to check if this task is still on the rq. The problem is that the check conditions are not