From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Cc: mingo@elte.hu, pjt@google.com, efault@gmx.de, venki@google.com,
suresh.b.siddha@intel.com, linux-kernel@vger.kernel.org,
"Nikunj A. Dadhania" <nikunj@linux.vnet.ibm.com>
Subject: Re: sched: Performance of Trade workload running inside VM
Date: Wed, 15 Feb 2012 12:59:21 +0100 [thread overview]
Message-ID: <1329307161.2293.66.camel@twins> (raw)
In-Reply-To: <20120214112827.GA22653@linux.vnet.ibm.com>
On Tue, 2012-02-14 at 16:58 +0530, Srivatsa Vaddagiri wrote:
> This lead me to investigate the wakeup code path closely and in
> particular select_idle_sibling(). select_idle_sibling() looks for a core
> that is fully idle, failing which causes the task to wakeup on prev_cpu
> (or cur_cpu). In particular, it does not go hunt for the least loaded
> cpu, which is what SD_BALANCE_WAKE provides.
>
> It seemed to me that we could have SD_BALANCE_WAKE enabled in SMT/MC
> domains atleast without losing on cache benefits. However Peterz seems
> to have noted that SD_BALANCE_WAKE can hurt sysbench.
> I have tried coming up with something that allows us to keep
> SD_BALANCE_WAKE enabled at smt/mc domains, not hurt sysbench and
> also help the Trade benchmark that I had begun investigating. The patch
> falls back to SD_BALANCE_WAKE type balance when the cpu returned by
> select_idle_cpu() is not idle.
> Index: linux-3.3-rc3-tip-a80142eb/kernel/sched/fair.c
> ===================================================================
> --- linux-3.3-rc3-tip-a80142eb.orig/kernel/sched/fair.c
> +++ linux-3.3-rc3-tip-a80142eb/kernel/sched/fair.c
> @@ -2783,7 +2783,9 @@ select_task_rq_fair(struct task_struct *
> prev_cpu = cpu;
>
> new_cpu = select_idle_sibling(p, prev_cpu);
> - goto unlock;
> + if (idle_cpu(new_cpu))
> + goto unlock;
> + sd = rcu_dereference(per_cpu(sd_llc, prev_cpu));
> }
>
> while (sd) {
Right, so the problem with this is that it might defeat wake_affine,
wake_affine tries to pull a task towards it wakeup source (irrespective
of idleness thereof).
Also, wake_balance is somewhat expensive, which seems like a bad thing
considering your workload is already wakeup heavy.
That said, there was a lot of text in your email which hid what your
actual problem was. So please try again, less words, more actual content
please.
next prev parent reply other threads:[~2012-02-15 11:59 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-14 11:28 sched: Performance of Trade workload running inside VM Srivatsa Vaddagiri
2012-02-15 11:59 ` Peter Zijlstra [this message]
2012-02-15 17:10 ` Srivatsa Vaddagiri
2012-02-15 17:24 ` Peter Zijlstra
2012-02-15 17:38 ` Srivatsa Vaddagiri
2012-02-15 17:45 ` Peter Zijlstra
2012-02-15 17:56 ` Srivatsa Vaddagiri
2012-02-18 7:41 ` Srivatsa Vaddagiri
2012-02-20 14:56 ` Peter Zijlstra
2012-02-20 15:09 ` Srivatsa Vaddagiri
2012-02-15 17:26 ` Peter Zijlstra
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=1329307161.2293.66.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nikunj@linux.vnet.ibm.com \
--cc=pjt@google.com \
--cc=suresh.b.siddha@intel.com \
--cc=vatsa@linux.vnet.ibm.com \
--cc=venki@google.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.