Re: [PATCH 1/2] sched/rt.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:54 +0800 Li Bin wrote: > @@ -1726,13 +1746,10 @@ static struct rq *find_lock_lowest_rq(struct > task_struct *task, struct rq *rq) >* We had to unlock the run queue. In >* the mean time, task could

Re: [PATCH 1/2] sched/rt.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:54 +0800 Li Bin wrote: > @@ -1726,13 +1746,10 @@ static struct rq *find_lock_lowest_rq(struct > task_struct *task, struct rq *rq) >* We had to unlock the run queue. In >* the mean time, task could have >

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

2018-04-12 Thread Li Bin
From: Zhou Chengming push_rt_task() pick the first pushable task and find an eligible lowest_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.

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

2018-04-12 Thread Li Bin
From: Zhou Chengming push_rt_task() pick the first pushable task and find an eligible lowest_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