Messages in this thread | | | Date | Fri, 08 Mar 2013 10:50:52 +0800 | From | Michael Wang <> | Subject | Re: [PATCH] sched: wakeup buddy |
| |
On 03/08/2013 01:27 AM, Peter Zijlstra wrote: > On Wed, 2013-03-06 at 15:06 +0800, Michael Wang wrote: >> @@ -3351,7 +3420,13 @@ select_task_rq_fair(struct task_struct *p, int >> sd_flag, int wake_flags) >> } >> >> if (affine_sd) { >> - if (cpu != prev_cpu && wake_affine(affine_sd, p, >> sync)) >> + /* >> + * If current and p are wakeup related, and balance is >> + * guaranteed, we will try to make them running >> closely >> + * to gain cache benefit. >> + */ >> + if (cpu != prev_cpu && wakeup_related(p) && >> + wake_affine(affine_sd, p, >> sync)) >> prev_cpu = cpu; > > > OK, so there's two issues I have with all this are: > > - it completely wrecks task placement for things like interrupts (sadly > I don't > have a good idea about a benchmark where this matters).
I don't get this point...could you please give more details?
> - yet another random number.. :/
Correct...well, but that also means flexibility, I suppose different system and workload will need some tuning on this knob to gain more benefit, by default, they will gain some benefit, small or big.
> > Also, I'm starting to dislike the buddy name; its somewhat over-used. >
I have to agree :), any suggestions?
Regards, Michael Wang
| |