Re: [RFC PATCH 12/16 v3] Bias select wakee than waker in WAKE_AFFINE
From: Peter Zijlstra
Date: Tue Jun 03 2014 - 08:24:15 EST
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@xxxxxxxxx>
> ---
> 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?
Attachment:
pgpuagMwD5epy.pgp
Description: PGP signature