All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 8/8] sched: reset lb_env when redo in load_balance()
Date: Wed, 20 Mar 2013 17:13:21 +0900	[thread overview]
Message-ID: <20130320081321.GF11672@lge.com> (raw)
In-Reply-To: <1363706483.22553.67.camel@laptop>

On Tue, Mar 19, 2013 at 04:21:23PM +0100, Peter Zijlstra wrote:
> On Thu, 2013-02-14 at 14:48 +0900, Joonsoo Kim wrote:
> > Commit 88b8dac0 makes load_balance() consider other cpus in its group.
> > So, now, When we redo in load_balance(), we should reset some fields of
> > lb_env to ensure that load_balance() works for initial cpu, not for other
> > cpus in its group. So correct it.
> > 
> > Cc: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
> > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> > 
> > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> > index 70631e8..25c798c 100644
> > --- a/kernel/sched/fair.c
> > +++ b/kernel/sched/fair.c
> > @@ -5014,14 +5014,20 @@ static int load_balance(int this_cpu, struct rq *this_rq,
> >  
> >  	struct lb_env env = {
> >  		.sd		= sd,
> > -		.dst_cpu	= this_cpu,
> > -		.dst_rq		= this_rq,
> >  		.dst_grpmask    = dst_grp,
> >  		.idle		= idle,
> > -		.loop_break	= sched_nr_migrate_break,
> >  		.cpus		= cpus,
> >  	};
> >  
> > +	schedstat_inc(sd, lb_count[idle]);
> > +	cpumask_copy(cpus, cpu_active_mask);
> > +
> > +redo:
> > +	env.dst_cpu = this_cpu;
> > +	env.dst_rq = this_rq;
> > +	env.loop = 0;
> > +	env.loop_break = sched_nr_migrate_break;
> > +
> >  	/* For NEWLY_IDLE load_balancing, we don't need to consider
> >  	 * other cpus in our group */
> >  	if (idle == CPU_NEWLY_IDLE) {
> 
> OK, so this is the case where we tried to balance !this_cpu and found
> ALL_PINNED, right?
> 
> You can only get here in very weird cases where people love their
> sched_setaffinity() waaaaay too much, do we care? Why not give up?

Now that you mentioned it, I have no enough reason for this patch.
I think that giving up is more preferable to me.
I will omit this patch for next spin.

> 
> Also, looking at this, shouldn't we consider env->cpus in
> can_migrate_task() where we compute new_dst_cpu?

As previously stated, env-cpus is for src cpus, so when we decide dst_cpu,
it doesn't matter.

Really thanks for detailed review to all this patchset.
Thanks.

> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

  reply	other threads:[~2013-03-20  8:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-14  5:48 [PATCH 0/8] correct load_balance() Joonsoo Kim
2013-02-14  5:48 ` [PATCH 1/8] sched: change position of resched_cpu() in load_balance() Joonsoo Kim
2013-03-19 12:59   ` Peter Zijlstra
2013-02-14  5:48 ` [PATCH 2/8] sched: explicitly cpu_idle_type checking in rebalance_domains() Joonsoo Kim
2013-03-19 14:02   ` Peter Zijlstra
2013-03-20  6:48     ` Joonsoo Kim
2013-02-14  5:48 ` [PATCH 3/8] sched: don't consider other cpus in our group in case of NEWLY_IDLE Joonsoo Kim
2013-03-19 14:20   ` Peter Zijlstra
2013-03-20  6:52     ` Joonsoo Kim
2013-02-14  5:48 ` [PATCH 4/8] sched: clean up move_task() and move_one_task() Joonsoo Kim
2013-03-19 14:30   ` Peter Zijlstra
2013-03-20  7:33     ` Joonsoo Kim
2013-03-20 11:11       ` Peter Zijlstra
2013-03-20 13:42         ` JoonSoo Kim
2013-03-20 11:16       ` Peter Zijlstra
2013-03-20 12:07         ` Peter Zijlstra
2013-02-14  5:48 ` [PATCH 5/8] sched: move up affinity check to mitigate useless redoing overhead Joonsoo Kim
2013-02-14  5:48 ` [PATCH 6/8] sched: rename load_balance_tmpmask to load_balance_cpu_active Joonsoo Kim
2013-03-19 15:01   ` Peter Zijlstra
2013-03-20  7:35     ` Joonsoo Kim
2013-02-14  5:48 ` [PATCH 7/8] sched: prevent to re-select dst-cpu in load_balance() Joonsoo Kim
2013-03-19 15:05   ` Peter Zijlstra
2013-03-20  7:43     ` Joonsoo Kim
2013-03-20 12:38       ` Peter Zijlstra
2013-03-20 13:48         ` JoonSoo Kim
2013-02-14  5:48 ` [PATCH 8/8] sched: reset lb_env when redo " Joonsoo Kim
2013-03-19 15:21   ` Peter Zijlstra
2013-03-20  8:13     ` Joonsoo Kim [this message]
2013-02-25  4:56 ` [PATCH 0/8] correct load_balance() Joonsoo Kim
2013-03-19  5:11   ` Joonsoo Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130320081321.GF11672@lge.com \
    --to=iamjoonsoo.kim@lge.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=vatsa@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.