From: Ingo Molnar <mingo@elte.hu>
To: Nikhil Rao <ncrao@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Mike Galbraith <efault@gmx.de>,
linux-kernel@vger.kernel.org,
"Nikunj A. Dadhania" <nikunj@linux.vnet.ibm.com>,
Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
Stephan Barwolf <stephan.baerwolf@tu-ilmenau.de>
Subject: Re: [PATCH v1 00/19] Increase resolution of load weights
Date: Mon, 2 May 2011 08:14:11 +0200 [thread overview]
Message-ID: <20110502061411.GA16682@elte.hu> (raw)
In-Reply-To: <1304299157-25769-1-git-send-email-ncrao@google.com>
* Nikhil Rao <ncrao@google.com> wrote:
> 1. Performance costs
>
> Ran 50 iterations of Ingo's pipe-test-100k program (100k pipe ping-pongs).
> See http://thread.gmane.org/gmane.linux.kernel/1129232/focus=1129389 for more
> info.
>
> 64-bit build.
>
> 2.6.39-rc5 (baseline):
>
> Performance counter stats for './pipe-test-100k' (50 runs):
>
> 905,034,914 instructions # 0.345 IPC ( +- 0.016% )
> 2,623,924,516 cycles ( +- 0.759% )
>
> 1.518543478 seconds time elapsed ( +- 0.513% )
>
> 2.6.39-rc5 + patchset:
>
> Performance counter stats for './pipe-test-100k' (50 runs):
>
> 905,351,545 instructions # 0.343 IPC ( +- 0.018% )
> 2,638,939,777 cycles ( +- 0.761% )
>
> 1.509101452 seconds time elapsed ( +- 0.537% )
>
> There is a marginal increase in instruction retired, about 0.034%; and marginal
> increase in cycles counted, about 0.57%.
Not sure this increase is statistically significant: both effects are within
noise and look at elapsed time, it actually went down.
Btw., to best measure context-switching costs you should do something like:
taskset 1 perf stat --repeat 50 ./pipe-test-100k
to pin both tasks to the same CPU. This reduces noise and makes the numbers
more relevant: SMP costs do not increase due to your patchset.
So it would be nice to re-run the 64-bit tests with the pipe test bound to a
single CPU.
> 32-bit build.
>
> 2.6.39-rc5 (baseline):
>
> Performance counter stats for './pipe-test-100k' (50 runs):
>
> 1,025,151,722 instructions # 0.238 IPC ( +- 0.018% )
> 4,303,226,625 cycles ( +- 0.524% )
>
> 2.133056844 seconds time elapsed ( +- 0.619% )
>
> 2.6.39-rc5 + patchset:
>
> Performance counter stats for './pipe-test-100k' (50 runs):
>
> 1,070,610,068 instructions # 0.239 IPC ( +- 1.369% )
> 4,478,912,974 cycles ( +- 1.011% )
>
> 2.293382242 seconds time elapsed ( +- 0.144% )
>
> On 32-bit kernels, instructions retired increases by about 4.4% with this
> patchset. CPU cycles also increases by about 4%.
>
> There is a marginal increase in instruction retired, about 0.034%; and
> marginal increase in cycles counted, about 0.57%.
These results look more bothersome, a clear increase in both cycles, elapsed
time, and instructions retired, well beyond measurement noise.
Given that scheduling costs are roughly 30% of that pipe test-case, the cost
increase to the scheduler is probably around:
instructions: +14.5%
cycles: +13.3%
That is rather significant.
Thanks,
Ingo
next prev parent reply other threads:[~2011-05-02 6:14 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-02 1:18 [PATCH v1 00/19] Increase resolution of load weights Nikhil Rao
2011-05-02 1:18 ` [PATCH v1 01/19] sched: introduce SCHED_POWER_SCALE to scale cpu_power calculations Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 02/19] sched: increase SCHED_LOAD_SCALE resolution Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 03/19] sched: use u64 for load_weight fields Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 04/19] sched: update cpu_load to be u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 05/19] sched: update this_cpu_load() to return u64 value Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 06/19] sched: update source_load(), target_load() and weighted_cpuload() to use u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 07/19] sched: update find_idlest_cpu() to use u64 for load Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 08/19] sched: update find_idlest_group() to use u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 09/19] sched: update division in cpu_avg_load_per_task to use div_u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 10/19] sched: update wake_affine path to use u64, s64 for weights Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 11/19] sched: update update_sg_lb_stats() to use u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 12/19] sched: Update update_sd_lb_stats() " Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 13/19] sched: update f_b_g() to use u64 for weights Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 14/19] sched: change type of imbalance to be u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 15/19] sched: update h_load to use u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 16/19] sched: update move_task() and helper functions to use u64 for weights Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 17/19] sched: update f_b_q() to use u64 for weighted cpuload Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 18/19] sched: update shares distribution to use u64 Nikhil Rao
2011-05-02 1:19 ` [PATCH v1 19/19] sched: convert atomic ops in shares update to use atomic64_t ops Nikhil Rao
2011-05-02 6:14 ` Ingo Molnar [this message]
2011-05-04 0:58 ` [PATCH v1 00/19] Increase resolution of load weights Nikhil Rao
2011-05-04 1:07 ` Nikhil Rao
2011-05-04 11:13 ` Ingo Molnar
2011-05-06 1:29 ` Nikhil Rao
2011-05-06 6:59 ` Ingo Molnar
2011-05-11 0:14 ` Nikhil Rao
2011-05-11 6:59 ` Ingo Molnar
2011-05-12 8:56 ` Nikhil Rao
2011-05-12 10:55 ` Ingo Molnar
2011-05-12 18:44 ` Nikhil Rao
2011-05-12 9:08 ` Peter Zijlstra
2011-05-12 17:30 ` Nikhil Rao
2011-05-13 7:19 ` 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=20110502061411.GA16682@elte.hu \
--to=mingo@elte.hu \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=ncrao@google.com \
--cc=nikunj@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=stephan.baerwolf@tu-ilmenau.de \
--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.