From: Josef Bacik <jbacik@fb.com>
To: <riel@redhat.com>, <mingo@redhat.com>, <peterz@infradead.org>,
<linux-kernel@vger.kernel.org>, <kernel-team@fb.com>
Subject: Re: [PATCH] sched: prefer an idle cpu vs an idle sibling for BALANCE_WAKE
Date: Wed, 27 May 2015 16:09:04 -0400 [thread overview]
Message-ID: <55662460.2050501@fb.com> (raw)
In-Reply-To: <1432675865-378571-1-git-send-email-jbacik@fb.com>
[-- Attachment #1: Type: text/plain, Size: 1814 bytes --]
On 05/26/2015 05:31 PM, Josef Bacik wrote:
> At Facebook we have a pretty heavily multi-threaded application that is
> sensitive to latency. We have been pulling forward the old SD_WAKE_IDLE code
> because it gives us a pretty significant performance gain (like 20%). It turns
> out this is because there are cases where the scheduler puts our task on a busy
> CPU when there are idle CPU's in the system. We verify this by reading the
> cpu_delay_req_avg_us from the scheduler netlink stuff. With our crappy patch we
> get much lower numbers vs baseline.
>
> SD_BALANCE_WAKE is supposed to find us an idle cpu to run on, however it is just
> looking for an idle sibling, preferring affinity over all else. This is not
> helpful in all cases, and SD_BALANCE_WAKE's job is to find us an idle cpu, not
> garuntee affinity. Fix this by first trying to find an idle sibling, and then
> if the cpu is not idle fall through to the logic to find an idle cpu. With this
> patch we get slightly better performance than with our forward port of
> SD_WAKE_IDLE. Thanks,
>
I rigged up a test script to run the perf bench sched tests and give me
the numbers. Here are the numbers
4.0
Messaging: 56.934 Total runtime in seconds
Pipe: 105620.762 ops/sec
4.0 + my patch
Messaging: 47.374
Pipe: 113691.199
so ~20% better performance out of the Messaging test which is sort of
like HHVM and ~8% better pipe performance. This box is a 2 socket 16
core box. I've attached the script I'm using, basically I just run each
thing 5 times, and for the perf bench sched pipe run I do NR_CPUS/2
instances of them in parallel.
If you are interested I'd be happy to show you numbers for our HHVM
test, but they are less straightforward and require pretty pictures and
a book of how to read the numbers. Thanks
Josef
next parent reply other threads:[~2015-05-27 20:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1432675865-378571-1-git-send-email-jbacik@fb.com>
2015-05-27 20:09 ` Josef Bacik [this message]
2015-05-27 21:03 ` [PATCH] sched: prefer an idle cpu vs an idle sibling for BALANCE_WAKE Rik van Riel
2015-05-27 21:23 ` Josef Bacik
2015-05-28 11:53 ` Ingo Molnar
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=55662460.2050501@fb.com \
--to=jbacik@fb.com \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.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.