Messages in this thread | | | Date | Tue, 3 Jun 2014 14:24:01 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC PATCH 12/16 v3] Bias select wakee than waker in WAKE_AFFINE |
| |
On Fri, May 30, 2014 at 02:36:08PM +0800, Yuyang Du wrote: > In WAKE_AFFINE, we do not simply select idle, but bias wakee than waker > if the cc of the wakee and waker (in this order) is capable of handling > the wakee task > > Signed-off-by: Yuyang Du <yuyang.du@intel.com> > --- > kernel/sched/fair.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 0c188df..d40ec9e 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -4370,7 +4370,18 @@ static int select_idle_sibling(struct task_struct *p, int target) > struct sched_group *sg; > int i = task_cpu(p); > > - if (idle_cpu(target)) > + /* > + * we do not select idle, if the cc of the wakee and > + * waker (in this order) is capable of handling the wakee task > + */ > + if (sysctl_sched_cc_wakeup_threshold) { > + if (idle_cpu(i) || cpu_cc_capable(i)) > + return i; > + > + if (i != target && (idle_cpu(target) || cpu_cc_capable(target))) > + return target; > + } > + else if (idle_cpu(target)) > return target; >
So now you make a function called: select_idle_sibling() explicitly not pick an idle cpu, and you don't think there's anything wrong with that? [unhandled content-type:application/pgp-signature] | |