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; > +} > + >