* [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3
@ 2012-03-19 22:26 Michael J. Wang
2012-03-20 13:59 ` Steven Rostedt
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Michael J. Wang @ 2012-03-19 22:26 UTC (permalink / raw)
To: mingo@elte.hu, peterz@infradead.org
Cc: Michael J. Wang, linux-kernel@vger.kernel.org,
rostedt@goodmis.org, yong.zhang0@gmail.com
From: Michael J Wang <mjwang@broadcom.com>
Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task.
Signed-off-by: Michael J Wang <mjwang@broadcom.com>
---
More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio.
--- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 -0700
+++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700
@@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig
next_idx:
if (idx >= MAX_RT_PRIO)
continue;
- if (next && next->prio < idx)
+ if (next && next->prio <= idx)
continue;
list_for_each_entry(rt_se, array->queue + idx, run_list) {
struct task_struct *p;
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-19 22:26 [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 Michael J. Wang @ 2012-03-20 13:59 ` Steven Rostedt 2012-03-21 1:40 ` Yong Zhang 2012-03-27 15:35 ` [tip:sched/urgent] sched/rt: Improve pick_next_highest_task_rt() tip-bot for Michael J Wang 2 siblings, 0 replies; 11+ messages in thread From: Steven Rostedt @ 2012-03-20 13:59 UTC (permalink / raw) To: Michael J. Wang Cc: mingo@elte.hu, peterz@infradead.org, linux-kernel@vger.kernel.org, yong.zhang0@gmail.com On Mon, 2012-03-19 at 22:26 +0000, Michael J. Wang wrote: > From: Michael J Wang <mjwang@broadcom.com> > > Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > > --- > > More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. > > --- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 -0700 > +++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700 > @@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig > next_idx: > if (idx >= MAX_RT_PRIO) > continue; > - if (next && next->prio < idx) > + if (next && next->prio <= idx) > continue; > list_for_each_entry(rt_se, array->queue + idx, run_list) { > struct task_struct *p; Acked-by: Steven Rostedt <rostedt@goodmis.org> -- Steve ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-19 22:26 [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 Michael J. Wang 2012-03-20 13:59 ` Steven Rostedt @ 2012-03-21 1:40 ` Yong Zhang 2012-03-21 1:56 ` Michael J. Wang 2012-03-27 15:35 ` [tip:sched/urgent] sched/rt: Improve pick_next_highest_task_rt() tip-bot for Michael J Wang 2 siblings, 1 reply; 11+ messages in thread From: Yong Zhang @ 2012-03-21 1:40 UTC (permalink / raw) To: Michael J. Wang Cc: mingo@elte.hu, peterz@infradead.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org On Mon, Mar 19, 2012 at 10:26:19PM +0000, Michael J. Wang wrote: > From: Michael J Wang <mjwang@broadcom.com> > > Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > > --- > > More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. > You should limit characters of each line to 80 if possible. And before sending you patch, linux-source/scripts/checkpatch.pl maybe give you some clues whether there is some warning/error. If there are, fix them. Only for what your patch wants to show: Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> Thanks, Yong > --- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 -0700 > +++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700 > @@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig > next_idx: > if (idx >= MAX_RT_PRIO) > continue; > - if (next && next->prio < idx) > + if (next && next->prio <= idx) > continue; > list_for_each_entry(rt_se, array->queue + idx, run_list) { > struct task_struct *p; > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Only stand for myself ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 1:40 ` Yong Zhang @ 2012-03-21 1:56 ` Michael J. Wang 2012-03-21 2:12 ` Yong Zhang 0 siblings, 1 reply; 11+ messages in thread From: Michael J. Wang @ 2012-03-21 1:56 UTC (permalink / raw) To: Yong Zhang Cc: mingo@elte.hu, peterz@infradead.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, Michael J. Wang [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=utf-8, Size: 2681 bytes --] Ah, I see. Forgot about the length of my comment line. Should I reformat my patch and send it again? Thanks, Michael -----Original Message----- From: Yong Zhang [mailto:yong.zhang0@gmail.com] Sent: Tuesday, March 20, 2012 6:41 PM To: Michael J. Wang Cc: mingo@elte.hu; peterz@infradead.org; linux-kernel@vger.kernel.org; rostedt@goodmis.org Subject: Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 On Mon, Mar 19, 2012 at 10:26:19PM +0000, Michael J. Wang wrote: > From: Michael J Wang <mjwang@broadcom.com> > > Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > > --- > > More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. > You should limit characters of each line to 80 if possible. And before sending you patch, linux-source/scripts/checkpatch.pl maybe give you some clues whether there is some warning/error. If there are, fix them. Only for what your patch wants to show: Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> Thanks, Yong > --- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 -0700 > +++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700 > @@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig > next_idx: > if (idx >= MAX_RT_PRIO) > continue; > - if (next && next->prio < idx) > + if (next && next->prio <= idx) > continue; > list_for_each_entry(rt_se, array->queue + idx, run_list) { > struct task_struct *p; > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Only stand for myself ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥ ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 1:56 ` Michael J. Wang @ 2012-03-21 2:12 ` Yong Zhang 2012-03-21 7:49 ` Michael J. Wang 0 siblings, 1 reply; 11+ messages in thread From: Yong Zhang @ 2012-03-21 2:12 UTC (permalink / raw) To: Michael J. Wang Cc: mingo@elte.hu, peterz@infradead.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org On Wed, Mar 21, 2012 at 01:56:47AM +0000, Michael J. Wang wrote: > Ah, I see. Forgot about the length of my comment line. > > Should I reformat my patch and send it again? It'll be better, and I think Peter/Ingo will happy with it. Thanks, Yong > > Thanks, > Michael > > > -----Original Message----- > From: Yong Zhang [mailto:yong.zhang0@gmail.com] > Sent: Tuesday, March 20, 2012 6:41 PM > To: Michael J. Wang > Cc: mingo@elte.hu; peterz@infradead.org; linux-kernel@vger.kernel.org; rostedt@goodmis.org > Subject: Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 > > On Mon, Mar 19, 2012 at 10:26:19PM +0000, Michael J. Wang wrote: > > From: Michael J Wang <mjwang@broadcom.com> > > > > Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. > > > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > > > > --- > > > > More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. > > > > You should limit characters of each line to 80 if possible. > > And before sending you patch, linux-source/scripts/checkpatch.pl maybe > give you some clues whether there is some warning/error. If there are, > fix them. > > Only for what your patch wants to show: > Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> > > Thanks, > Yong > > > --- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 -0700 > > +++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700 > > @@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig > > next_idx: > > if (idx >= MAX_RT_PRIO) > > continue; > > - if (next && next->prio < idx) > > + if (next && next->prio <= idx) > > continue; > > list_for_each_entry(rt_se, array->queue + idx, run_list) { > > struct task_struct *p; > > > > > > > > > > > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > -- > Only stand for myself > > N�����r��y���b�X��ǧv�^�){.n�+����{����zX��\x17��ܨ}���Ơz�&j:+v���\a����zZ+��+zf���h���~����i���z�\x1e�w���?����&�)ߢ^[f��^jǫy�m��@A�a��\x7f�\f0��h�\x0f�i\x7f -- Only stand for myself ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 2:12 ` Yong Zhang @ 2012-03-21 7:49 ` Michael J. Wang 2012-03-21 9:06 ` Peter Zijlstra 0 siblings, 1 reply; 11+ messages in thread From: Michael J. Wang @ 2012-03-21 7:49 UTC (permalink / raw) To: Yong Zhang Cc: mingo@elte.hu, peterz@infradead.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, Michael J. Wang [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=utf-8, Size: 3825 bytes --] > From: Yong Zhang [mailto:yong.zhang0@gmail.com] > Sent: Tuesday, March 20, 2012 7:12 PM > To: Michael J. Wang > Cc: mingo@elte.hu; peterz@infradead.org; linux-kernel@vger.kernel.org; > rostedt@goodmis.org > Subject: Re: [PATCH 1/1] scheduler: minor improvement to > pick_next_highest_task_rt in linux-3.3 > > On Wed, Mar 21, 2012 at 01:56:47AM +0000, Michael J. Wang wrote: > > Ah, I see. Forgot about the length of my comment line. > > > > Should I reformat my patch and send it again? > > It'll be better, and I think Peter/Ingo will happy with it. > OK. I will resend now. Thanks for all your help! Michael > Thanks, > Yong > > > > > Thanks, > > Michael > > > > > > -----Original Message----- > > From: Yong Zhang [mailto:yong.zhang0@gmail.com] > > Sent: Tuesday, March 20, 2012 6:41 PM > > To: Michael J. Wang > > Cc: mingo@elte.hu; peterz@infradead.org; linux- > kernel@vger.kernel.org; rostedt@goodmis.org > > Subject: Re: [PATCH 1/1] scheduler: minor improvement to > pick_next_highest_task_rt in linux-3.3 > > > > On Mon, Mar 19, 2012 at 10:26:19PM +0000, Michael J. Wang wrote: > > > From: Michael J Wang <mjwang@broadcom.com> > > > > > > Avoid extra work by continuing on to the next rt_rq if the highest > prio task in current rt_rq is the same priority as our candidate task. > > > > > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > > > > > > --- > > > > > > More detailed explanation: if next is not NULL, then we have found > a candidate task, and its priority is next->prio. Now we are looking > for an even higher priority task in the other rt_rq's. idx is the > highest priority in the current candidate rt_rq. In the current 3.3 > code, if idx is equal to next->prio, we would start scanning the tasks > in that rt_rq and replace the current candidate task with a task from > that rt_rq. But the new task would only have a priority that is equal > to our previous candidate task, so we have not advanced our goal of > finding a higher prio task. So we should avoid the extra work by > continuing on to the next rt_rq if idx is equal to next->prio. > > > > > > > You should limit characters of each line to 80 if possible. > > > > And before sending you patch, linux-source/scripts/checkpatch.pl > maybe > > give you some clues whether there is some warning/error. If there > are, > > fix them. > > > > Only for what your patch wants to show: > > Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> > > > > Thanks, > > Yong > > > > > --- linux-3.3/kernel/sched/rt.c.orig 2012-03-18 16:15:34.000000000 > -0700 > > > +++ linux-3.3/kernel/sched/rt.c 2012-03-19 14:52:54.585391702 -0700 > > > @@ -1403,7 +1403,7 @@ static struct task_struct *pick_next_hig > > > next_idx: > > > if (idx >= MAX_RT_PRIO) > > > continue; > > > - if (next && next->prio < idx) > > > + if (next && next->prio <= idx) > > > continue; > > > list_for_each_entry(rt_se, array->queue + idx, run_list) { > > > struct task_struct *p; > > > > > > > > > > > > > > > > > > > > > -- > > > To unsubscribe from this list: send the line "unsubscribe linux- > kernel" in > > > the body of a message to majordomo@vger.kernel.org > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > Please read the FAQ at http://www.tux.org/lkml/ > > > > -- > > Only stand for myself > > > > > N�����r��y���b�X��ǧv�^�)Þº{.n�+����{����zX��\x17��ܨ}ï¿½ï¿½ï¿½Æ z�&j:+v���\r����zZ+� > �+zf���h���~����i���z�\x1e�w���?����&�)ߢ^[f��^jÇ«y�m��@A�a��\x7f� > > 0��h�\x0f�i\x7f > > -- > Only stand for myself ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥ ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 7:49 ` Michael J. Wang @ 2012-03-21 9:06 ` Peter Zijlstra 2012-03-21 18:33 ` Michael J. Wang 0 siblings, 1 reply; 11+ messages in thread From: Peter Zijlstra @ 2012-03-21 9:06 UTC (permalink / raw) To: Michael J. Wang Cc: Yong Zhang, mingo@elte.hu, linux-kernel@vger.kernel.org, rostedt@goodmis.org On Wed, 2012-03-21 at 07:49 +0000, Michael J. Wang wrote: > > > Should I reformat my patch and send it again? > > > > It'll be better, and I think Peter/Ingo will happy with it. > > > > OK. I will resend now. Thanks for all your help! The resend didn't include the more details thing, so I fudged it by hand. The queued thing now looks like this: --- Subject: sched, rt: Minor improvement to pick_next_highest_task_rt From: Michael J Wang <mjwang@broadcom.com> Date: Mon, 19 Mar 2012 22:26:19 +0000 Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. Signed-off-by: Michael J Wang <mjwang@broadcom.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/2EF88150C0EF2C43A218742ED384C1BC0FC83D6B@IRVEXCHMB08.corp.ad.broadcom.com --- kernel/sched/rt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1428,7 +1428,7 @@ static struct task_struct *pick_next_hig next_idx: if (idx >= MAX_RT_PRIO) continue; - if (next && next->prio < idx) + if (next && next->prio <= idx) continue; list_for_each_entry(rt_se, array->queue + idx, run_list) { struct task_struct *p; ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 9:06 ` Peter Zijlstra @ 2012-03-21 18:33 ` Michael J. Wang 2012-03-21 19:35 ` Peter Zijlstra 0 siblings, 1 reply; 11+ messages in thread From: Michael J. Wang @ 2012-03-21 18:33 UTC (permalink / raw) To: Peter Zijlstra Cc: Yong Zhang, mingo@elte.hu, linux-kernel@vger.kernel.org, rostedt@goodmis.org, Michael J. Wang > From: Peter Zijlstra [mailto:peterz@infradead.org] > Sent: Wednesday, March 21, 2012 2:07 AM > To: Michael J. Wang > Cc: Yong Zhang; mingo@elte.hu; linux-kernel@vger.kernel.org; > rostedt@goodmis.org > Subject: RE: [PATCH 1/1] scheduler: minor improvement to > pick_next_highest_task_rt in linux-3.3 > > On Wed, 2012-03-21 at 07:49 +0000, Michael J. Wang wrote: > > > > Should I reformat my patch and send it again? > > > > > > It'll be better, and I think Peter/Ingo will happy with it. > > > > > > > OK. I will resend now. Thanks for all your help! > > The resend didn't include the more details thing, so I fudged it by > hand. The queued thing now looks like this: > OK. Thanks. I was afraid the details were too verbose when the fix was obvious to the experts. Anyways, I now know the format you are expecting, so I will do better next time. Michael > --- > Subject: sched, rt: Minor improvement to pick_next_highest_task_rt > From: Michael J Wang <mjwang@broadcom.com> > Date: Mon, 19 Mar 2012 22:26:19 +0000 > > Avoid extra work by continuing on to the next rt_rq if the highest > prio task in current rt_rq is the same priority as our candidate > task. > > More detailed explanation: if next is not NULL, then we have found a > candidate task, and its priority is next->prio. Now we are looking > for an even higher priority task in the other rt_rq's. idx is the > highest priority in the current candidate rt_rq. In the current 3.3 > code, if idx is equal to next->prio, we would start scanning the tasks > in that rt_rq and replace the current candidate task with a task from > that rt_rq. But the new task would only have a priority that is equal > to our previous candidate task, so we have not advanced our goal of > finding a higher prio task. So we should avoid the extra work by > continuing on to the next rt_rq if idx is equal to next->prio. > > Signed-off-by: Michael J Wang <mjwang@broadcom.com> > Acked-by: Steven Rostedt <rostedt@goodmis.org> > Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > Link: > http://lkml.kernel.org/r/2EF88150C0EF2C43A218742ED384C1BC0FC83D6B@IRVEX > CHMB08.corp.ad.broadcom.com > --- > kernel/sched/rt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/kernel/sched/rt.c > +++ b/kernel/sched/rt.c > @@ -1428,7 +1428,7 @@ static struct task_struct *pick_next_hig > next_idx: > if (idx >= MAX_RT_PRIO) > continue; > - if (next && next->prio < idx) > + if (next && next->prio <= idx) > continue; > list_for_each_entry(rt_se, array->queue + idx, run_list) { > struct task_struct *p; > ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 18:33 ` Michael J. Wang @ 2012-03-21 19:35 ` Peter Zijlstra 2012-03-22 7:50 ` Ingo Molnar 0 siblings, 1 reply; 11+ messages in thread From: Peter Zijlstra @ 2012-03-21 19:35 UTC (permalink / raw) To: Michael J. Wang Cc: Yong Zhang, mingo@elte.hu, linux-kernel@vger.kernel.org, rostedt@goodmis.org On Wed, 2012-03-21 at 18:33 +0000, Michael J. Wang wrote: > > OK. Thanks. I was afraid the details were too verbose when the fix > was obvious to the experts. Anyways, I now know the format you > are expecting, so I will do better next time. Since you took the trouble to write it, I thought it worth the trouble to include. Very often Changelogs are way too spartan (my own included), I can't recall the amount of times I've kicked myself for leaving out some - at the time - obvious details. So I prefer people to go overboard a bit and err on the side of too much information :-) ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 2012-03-21 19:35 ` Peter Zijlstra @ 2012-03-22 7:50 ` Ingo Molnar 0 siblings, 0 replies; 11+ messages in thread From: Ingo Molnar @ 2012-03-22 7:50 UTC (permalink / raw) To: Peter Zijlstra Cc: Michael J. Wang, Yong Zhang, mingo@elte.hu, linux-kernel@vger.kernel.org, rostedt@goodmis.org * Peter Zijlstra <peterz@infradead.org> wrote: > On Wed, 2012-03-21 at 18:33 +0000, Michael J. Wang wrote: > > > > OK. Thanks. I was afraid the details were too verbose when the fix > > was obvious to the experts. Anyways, I now know the format you > > are expecting, so I will do better next time. > > Since you took the trouble to write it, I thought it worth the trouble > to include. > > Very often Changelogs are way too spartan (my own included), I can't > recall the amount of times I've kicked myself for leaving out some - at > the time - obvious details. > > So I prefer people to go overboard a bit and err on the side > of too much information :-) Yeah. Current trends are: for every 1000 patches sent there's maybe one patch that has a tad too much information in its changelog - but instead offers good entertainment in the changelog so it's still perfectly fine. 990 patches have too little information. The remaining 9 are just fine. Thanks, Ingo ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:sched/urgent] sched/rt: Improve pick_next_highest_task_rt() 2012-03-19 22:26 [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 Michael J. Wang 2012-03-20 13:59 ` Steven Rostedt 2012-03-21 1:40 ` Yong Zhang @ 2012-03-27 15:35 ` tip-bot for Michael J Wang 2 siblings, 0 replies; 11+ messages in thread From: tip-bot for Michael J Wang @ 2012-03-27 15:35 UTC (permalink / raw) To: linux-tip-commits Cc: linux-kernel, hpa, mingo, a.p.zijlstra, rostedt, mjwang, tglx, yong.zhang0 Commit-ID: 1b028abc779b67b699daff55e27d2432f8d92666 Gitweb: http://git.kernel.org/tip/1b028abc779b67b699daff55e27d2432f8d92666 Author: Michael J Wang <mjwang@broadcom.com> AuthorDate: Mon, 19 Mar 2012 22:26:19 +0000 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Tue, 27 Mar 2012 14:52:12 +0200 sched/rt: Improve pick_next_highest_task_rt() Avoid extra work by continuing on to the next rt_rq if the highest prio task in current rt_rq is the same priority as our candidate task. More detailed explanation: if next is not NULL, then we have found a candidate task, and its priority is next->prio. Now we are looking for an even higher priority task in the other rt_rq's. idx is the highest priority in the current candidate rt_rq. In the current 3.3 code, if idx is equal to next->prio, we would start scanning the tasks in that rt_rq and replace the current candidate task with a task from that rt_rq. But the new task would only have a priority that is equal to our previous candidate task, so we have not advanced our goal of finding a higher prio task. So we should avoid the extra work by continuing on to the next rt_rq if idx is equal to next->prio. Signed-off-by: Michael J Wang <mjwang@broadcom.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/2EF88150C0EF2C43A218742ED384C1BC0FC83D6B@IRVEXCHMB08.corp.ad.broadcom.com Signed-off-by: Ingo Molnar <mingo@kernel.org> --- kernel/sched/rt.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index b60dad7..44af55e 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1428,7 +1428,7 @@ static struct task_struct *pick_next_highest_task_rt(struct rq *rq, int cpu) next_idx: if (idx >= MAX_RT_PRIO) continue; - if (next && next->prio < idx) + if (next && next->prio <= idx) continue; list_for_each_entry(rt_se, array->queue + idx, run_list) { struct task_struct *p; ^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-03-27 15:36 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-03-19 22:26 [PATCH 1/1] scheduler: minor improvement to pick_next_highest_task_rt in linux-3.3 Michael J. Wang 2012-03-20 13:59 ` Steven Rostedt 2012-03-21 1:40 ` Yong Zhang 2012-03-21 1:56 ` Michael J. Wang 2012-03-21 2:12 ` Yong Zhang 2012-03-21 7:49 ` Michael J. Wang 2012-03-21 9:06 ` Peter Zijlstra 2012-03-21 18:33 ` Michael J. Wang 2012-03-21 19:35 ` Peter Zijlstra 2012-03-22 7:50 ` Ingo Molnar 2012-03-27 15:35 ` [tip:sched/urgent] sched/rt: Improve pick_next_highest_task_rt() tip-bot for Michael J Wang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox