On Mon, 18 Jun 2018 13:58:08 +0900
Byungchul Park <byungchul.p...@lge.com> wrote:

> Hello Juri,
> 
> I've changed the code a little bit to avoid a compile warning caused by
> 'const' args of find_cpu(). Can I keep your Acked-by?
> 
> BEFORE:
> static int find_cpu(const struct cpumask *mask,
>                   const struct sched_domain *sd,
>                   const struct sched_domain *prefer)
> 
> AFTER:
> static int find_cpu(const struct cpumask *mask,
>                   struct sched_domain *sd,
>                   struct sched_domain *prefer)
> 

Instead of doing that, why not fix sched_domain_span() to take a
constant. There's no reason that function should be modifying the
sched_domain.

-- Steve

> (I temporarily removed the Acked-by you gave me.)
> Acked-by: Juri Lelli <juri.le...@arm.com>
> 
> -----8<-----
> >From 5a4753e8c15369420a16fa04026f74ae5c9d377c Mon Sep 17 00:00:00 2001  
> From: Byungchul Park <byungchul.p...@lge.com>
> Date: Mon, 4 Jun 2018 16:46:56 +0900
> Subject: [RESEND PATCH v12 1/2] sched/deadline: Add support for 
> SD_PREFER_SIBLING on
>  find_later_rq()
> 
> It would be better to try to check other siblings first if
> SD_PREFER_SIBLING is flaged when pushing tasks - migration.
> 
> Suggested-by: Peter Zijlstra <pet...@infradead.org>
> Signed-off-by: Byungchul Park <byungchul.p...@lge.com>
> ---
>  kernel/sched/deadline.c | 80 
> ++++++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 73 insertions(+), 7 deletions(-)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index 1356afd..6130d40 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -1853,12 +1853,33 @@ static struct task_struct 
> *pick_earliest_pushable_dl_task(struct rq *rq, int cpu
>  
>  static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask_dl);
>  
> +/*
> + * Find the first CPU in: mask & sd & ~prefer
> + */
> +static int find_cpu(const struct cpumask *mask,
> +                 struct sched_domain *sd,
> +                 struct sched_domain *prefer)
> +{
> +     int cpu;
> +
> +     for_each_cpu(cpu, mask) {
> +             if (!cpumask_test_cpu(cpu, sched_domain_span(sd)))
> +                     continue;
> +             if (prefer && cpumask_test_cpu(cpu, sched_domain_span(prefer)))
> +                     continue;
> +             break;
> +     }
> +
> +     return cpu;
> +}
> +
> 

Reply via email to