All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Galbraith <efault@gmx.de>
To: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Arjan van de Ven <arjan@linux.jf.intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
	Yanmin Zhang <yanmin_zhang@linux.jf.intel.com>,
	Gautham R Shenoy <ego@in.ibm.com>
Subject: Re: [patch v2 1/2] sched: check for prev_cpu == this_cpu before calling wake_affine()
Date: Fri, 02 Apr 2010 21:43:27 +0200	[thread overview]
Message-ID: <1270237407.6316.19.camel@marge.simson.net> (raw)
In-Reply-To: <1270227925.2870.49.camel@sbs-t61.sc.intel.com>

On Fri, 2010-04-02 at 10:05 -0700, Suresh Siddha wrote:
> On Thu, 2010-04-01 at 23:20 -0700, Mike Galbraith wrote:
> > Yes, if task A and task B are more or less unrelated, you'd want them to
> > stay in separate domains, you'd not want some random event to pull.  The
> > other side of the coin is tasks which fork off partners that they will
> > talk to at high frequency.  They land just as far away, and desperately
> > need to move into a shared cache domain.  There's currently no
> > discriminator, so while always asking wake_affine() may reduce the risk
> > of moving a task with a large footprint, it also increases the risk of
> > leaving buddies jabbering cross cache.
> 
> Mike, Apart from this small tweak that you added in wake_up() path there
> is no extra logic that keeps buddies together for long.

The wakeup logic is the only thing that keeps buddies together.

>  As I was saying,
> fork/exec balance starts apart and in the partial loaded case (i.e.,
> when # of running tasks <= # of sockets or # of total cores) the default
> load balancer policy also tries to distribute the load equally among
> sockets/cores (for peak cache/memory controller bw etc). While the
> wakeup() may keep the buddies on SMT siblings, next load balancing event
> will move them far away. If we need to keep buddies together we need
> more changes than this small tweak.

We very definitely need to keep buddies cache affine.  Yes, maybe some
additional logic is needed, as there is a conflict between load types.
A kbuild spreading to the four winds is fine, while netperf jabbering
cross cache is horrible.

> > Do you have a compute load bouncing painfully which this patch cures?
> > 
> > I have no strong objections, and the result is certainly easier on the
> > eye.  If I were making the decision, I'd want to see some numbers.
> 
> All I saw in the changelog when you added this new tweak was:
> 
> commit 8b911acdf08477c059d1c36c21113ab1696c612b
> Author: Mike Galbraith <efault@gmx.de>
> Date:   Thu Mar 11 17:17:16 2010 +0100
> 
>     sched: Fix select_idle_sibling()
>     
>     Don't bother with selection when the current cpu is idle. ....
> 
> Is it me or you who need to provide the data for justification for your
> new tweak that changes the current behavior ;)
> 
> I will run some workloads aswell!

Whoa.  It was a simple question, no need to get defensive.  You need not
provide anything.  Forget I even asked, it's not my decision.

	-Mike


  reply	other threads:[~2010-04-02 19:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-08 22:19 [patch v2 1/2] sched: check for prev_cpu == this_cpu before calling wake_affine() Suresh Siddha
2010-03-08 22:19 ` [patch v2 2/2] sched: fix select_idle_sibling() logic in select_task_rq_fair() Suresh Siddha
2010-03-31 10:25 ` [patch v2 1/2] sched: check for prev_cpu == this_cpu before calling wake_affine() Peter Zijlstra
2010-03-31 23:47   ` Suresh Siddha
2010-04-01  5:32     ` Mike Galbraith
2010-04-01 21:04       ` Suresh Siddha
2010-04-02  6:20         ` Mike Galbraith
2010-04-02 17:05           ` Suresh Siddha
2010-04-02 19:43             ` Mike Galbraith [this message]
2010-04-14 20:45           ` Suresh Siddha
2010-04-15  5:17             ` Mike Galbraith
2010-04-20  8:46     ` Peter Zijlstra
2010-04-20  8:55       ` Peter Zijlstra
2010-04-20 17:03         ` Suresh Siddha
2010-04-23 10:50     ` [tip:sched/core] sched: Fix select_idle_sibling() logic in select_task_rq_fair() tip-bot for Suresh Siddha

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=1270237407.6316.19.camel@marge.simson.net \
    --to=efault@gmx.de \
    --cc=arjan@linux.jf.intel.com \
    --cc=ego@in.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=suresh.b.siddha@intel.com \
    --cc=svaidy@linux.vnet.ibm.com \
    --cc=yanmin_zhang@linux.jf.intel.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.