Re: [PATCH v4 2/3] sched/rt: Fix wrong SMP scheduler behavior for equal prio cases

2015-02-16 Thread Steven Rostedt
On Mon, 16 Feb 2015 17:32:23 +0800
Xunlei Pang  wrote:

> From: Xunlei Pang 
> 
> Currently, SMP RT scheduler has some trouble in dealing with
> equal prio cases.
> 
> For example, in check_preempt_equal_prio():
> When RT1(current task) gets preempted by RT2, if there is a
> migratable RT3 with same prio, RT3 will be pushed away instead
> of RT1 afterwards, because RT1 will be enqueued to the tail of
> the pushable list when going through succeeding put_prev_task_rt()
> triggered by resched. This broke FIFO.
> 
> Furthermore, this is also problematic for normal preempted cases
> if there're some rt tasks queued with the same prio as current,
> because current will be put behind these tasks in the pushable
> queue.
> 
> So, if a task is running and gets preempted by a higher priority
> task (or even with same priority for migrating), this patch ensures
> that it is put before any existing task with the same priority in
> the pushable queue.
> 
> Signed-off-by: Xunlei Pang 

I'd love to review this now, but unfortunately I need to get ready for
my trip to Linux Collab. I'll get back to this next week. Feel free to
ping me then. If I have time, I might review this while at the
conference, but don't place any bets that I will.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v4 2/3] sched/rt: Fix wrong SMP scheduler behavior for equal prio cases

2015-02-16 Thread Steven Rostedt
On Mon, 16 Feb 2015 17:32:23 +0800
Xunlei Pang xlp...@126.com wrote:

 From: Xunlei Pang pang.xun...@linaro.org
 
 Currently, SMP RT scheduler has some trouble in dealing with
 equal prio cases.
 
 For example, in check_preempt_equal_prio():
 When RT1(current task) gets preempted by RT2, if there is a
 migratable RT3 with same prio, RT3 will be pushed away instead
 of RT1 afterwards, because RT1 will be enqueued to the tail of
 the pushable list when going through succeeding put_prev_task_rt()
 triggered by resched. This broke FIFO.
 
 Furthermore, this is also problematic for normal preempted cases
 if there're some rt tasks queued with the same prio as current,
 because current will be put behind these tasks in the pushable
 queue.
 
 So, if a task is running and gets preempted by a higher priority
 task (or even with same priority for migrating), this patch ensures
 that it is put before any existing task with the same priority in
 the pushable queue.
 
 Signed-off-by: Xunlei Pang pang.xun...@linaro.org

I'd love to review this now, but unfortunately I need to get ready for
my trip to Linux Collab. I'll get back to this next week. Feel free to
ping me then. If I have time, I might review this while at the
conference, but don't place any bets that I will.

-- Steve
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/