All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
	Mike Galbraith <efault@gmx.de>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH v7 0/8] Tunable sched_mc_power_savings=n
Date: Fri, 2 Jan 2009 23:16:30 +0100	[thread overview]
Message-ID: <20090102221630.GF17240@elte.hu> (raw)
In-Reply-To: <20090102072600.GA13412@dirshya.in.ibm.com>


* Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> wrote:

> * Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> [2008-12-30 23:37:22]:
> 
> > * Ingo Molnar <mingo@elte.hu> [2008-12-30 07:21:39]:
> > 
> > > 
> > > * Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> > > 
> > > > > > KERNBENCH Runs: make -j4 on a x86 8 core, dual socket quad core cpu
> > > > > > package system
> > > > > >
> > > > > > SchedMC Run Time     Package Idle    Energy  Power
> > > > > > 0       81.68        52.83% 54.71%  1.00x J 1.00y W
> > > > > > 1       80.70        36.62% 70.11%  0.95x J 0.96y W
> > > > > > 2       74.95        19.53% 85.92%  0.90x J 0.98y W
> > > 
> > > > > Your result is very interesting.
> > > > > level 2 is more fast and efficient of power.
> > > > > 
> > > > > What's major contributor to use less time in level 2?
> > > > > I think it's cache bounce is less time than old.
> > > > > Is right ?
> > > > 
> > > > Yes, correct
> > > 
> > > yes, i too noticed that runtime improved so dramatically: +7.5% on 
> > > kernbench is a _very_ big deal.
> > > 
> > > So i wanted to ask you to re-test whether this speedup is reproducible, 
> > > and if yes, please check a few other workloads (for example sysbench on 
> > > postgresql / mysqld) and send a patch that changes the 
> > > sched_mc_power_savings default to POWERSAVINGS_BALANCE_WAKEUP (2).
> > 
> > The speedup for kernbench is reproducible.  I will post a more
> > detailed test report on kernbench soon.  The power-performance benefit
> > is for an under-utilised system (nr_cpus/2) run of kernbench which is
> > very ideal to demonstrate the power savings feature.  I will also try
> > sysbench and update results little later.  As Balbir mentioned, I am
> > on vacation and traveling.  I will post more benchmark results as soon
> > as possible.
> 
> Hi Ingo,
> 
> I ran my kernbench test setup over multiple iterations with several
> thread counts.  The performance will almost max out at 8-10 threads of
> kernbench since the system has total of 8 logical CPUs.
> 
> The power saving benefits is expected to be maximum around 30-50%
> system utilisation (3-5 threads).
> 
> I have posted the normalised results in various tables below.
> Apparently the sched_mc=2 settings is helping at 8 threads case also
> due to better cache line sharing.  I will work with Balbir to see if
> we can prove this assertion using performance counters.  I will start
> looking at sysbench and try to get benchmark results and power/energy
> data in similar configurations.
> 
> --Vaidy
> 
> All these tests were done on sched-tip at 
> commit: fe235c6b2a4b9eb11909fe40249abcce67f7d45d 
> uname -a is 2.6.28-rc8-tip-sv-05664-gfe235c6-dirty
> 
> Kernbench was run on source 2.6.28 while the previous tests used
> 2.6.25 kernel which had far less stuff to compile in defconfig :)
> 
> System configuration is x86 quad core dual socket system 
> with 8 logical CPUs
> 
> Each result is an average of 5 iterations.
> 
> Kernbench threads = 2
> 
> SchedMC Run Time     Package Idle(%)    Energy(J)  Power(W)
> 0	217.37	     73.30 76.93	1.00	   1.00
> 1	204.68	     50.86 99.91	0.95	   1.01
> 2	204.49	     50.69 99.93	0.95	   1.01
> 
> Kernbench threads = 4
> 
> SchedMC Run Time     Package Idle(%)    Energy(J)  Power(W)
> 0	109.11	     51.99 54.91	1.00	   1.00
> 1	109.71	     35.86 71.88	0.96	   0.96
> 2	102.95	     25.02 82.47	0.92	   0.97
> 
> Kernbench threads = 6
> 
> SchedMC Run Time     Package Idle(%)    Energy(J)  Power(W)
> 0	74.77	     35.29 36.37	1.00	   1.00
> 1	74.54	     28.83 40.90	0.99	   0.99
> 2	73.38	     21.09 47.29	0.98	   1.00
> 
> Kernbench threads = 8
> 
> SchedMC Run Time     Package Idle(%)    Energy(J)  Power(W)
> 0	63.18	     26.23 28.67	1.00	   1.00
> 1	56.89	     19.85 22.38 	0.93	   1.02
> 2	55.27	     17.65 19.84	0.91	   1.03

looks very promising.

> Relative measures for sched_mc=1 compared to baseline sched_mc=0
> 
> Threads=>	2	4	6	8	10	12
> KernbenchTime	0.94	1.01	1.00	0.90	0.93	0.95
> Energy		0.95	0.96	0.99	0.93	0.95	0.97
> Power		1.01	0.96	0.99	1.02	1.02	1.01
> 
> Relative measures for sched_mc=2 compared to baseline sched_mc=0
> 
> Threads=>	2	4	6	8	10	12
> KernbenchTime	0.94	0.94	0.98	0.87	0.92	0.94
> Energy		0.95	0.92	0.98	0.91	0.94	0.96
> Power		1.01	0.97	1.00	1.03	1.02	1.02

That's icing on the cake.

Mike, would you be interesting in having a look at sched_mc=2 as a 
kernel-wide default - and give it your blessing if you find it to be a net 
improvement for the various performance and interactivity tests you do?

	Ingo

  reply	other threads:[~2009-01-02 22:16 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-18 17:55 [PATCH v7 0/8] Tunable sched_mc_power_savings=n Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 1/8] sched: convert BALANCE_FOR_xx_POWER to inline functions Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 2/8] sched: Framework for sched_mc/smt_power_savings=N Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 3/8] sched: favour lower logical cpu number for sched_mc balance Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 4/8] sched: nominate preferred wakeup cpu Vaidyanathan Srinivasan
2008-12-18 18:12   ` Balbir Singh
2008-12-19 21:55   ` Andrew Morton
2008-12-19 22:19     ` Andrew Morton
2008-12-19 22:27       ` Ingo Molnar
2008-12-19 22:31         ` Ingo Molnar
2008-12-19 22:38           ` Andrew Morton
2008-12-19 22:54             ` Ingo Molnar
2008-12-20  4:36     ` Vaidyanathan Srinivasan
2008-12-20  4:44       ` Andrew Morton
2008-12-20  7:54         ` Ingo Molnar
2008-12-20 10:02         ` Vaidyanathan Srinivasan
2008-12-20 10:36           ` Vaidyanathan Srinivasan
2008-12-20 10:56             ` Vaidyanathan Srinivasan
2008-12-21  8:46               ` Ingo Molnar
2008-12-18 17:56 ` [PATCH v7 5/8] sched: bias task wakeups to preferred semi-idle packages Vaidyanathan Srinivasan
2008-12-18 18:11   ` Balbir Singh
2008-12-18 17:56 ` [PATCH v7 6/8] sched: activate active load balancing in new idle cpus Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 7/8] sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0 Vaidyanathan Srinivasan
2008-12-18 17:56 ` [PATCH v7 8/8] sched: idle_balance() does not call load_balance_newidle() Vaidyanathan Srinivasan
2008-12-18 18:12   ` Balbir Singh
2008-12-18 20:17     ` Ingo Molnar
2008-12-18 20:19 ` [PATCH v7 0/8] Tunable sched_mc_power_savings=n Ingo Molnar
2008-12-18 20:31   ` Ingo Molnar
2008-12-19  8:29     ` Vaidyanathan Srinivasan
2008-12-19  8:24   ` Vaidyanathan Srinivasan
2008-12-19 13:34   ` Vaidyanathan Srinivasan
2008-12-29 23:43 ` MinChan Kim
2008-12-30  2:48   ` Balbir Singh
2008-12-30  6:21     ` Ingo Molnar
2008-12-30  6:44       ` Balbir Singh
2008-12-30  7:20         ` Ingo Molnar
2008-12-30 18:07       ` Vaidyanathan Srinivasan
2009-01-02  7:26         ` Vaidyanathan Srinivasan
2009-01-02 22:16           ` Ingo Molnar [this message]
2009-01-03  7:29             ` Mike Galbraith
2009-01-03 10:16               ` Vaidyanathan Srinivasan
2009-01-03 11:22                 ` Mike Galbraith
2009-01-04 15:00                   ` Mike Galbraith
2009-01-04 18:19                     ` Vaidyanathan Srinivasan
2009-01-04 19:52                       ` Mike Galbraith
2009-01-05  3:20                         ` Vaidyanathan Srinivasan
2009-01-05  4:40                           ` Mike Galbraith
2009-01-05  6:36                             ` Mike Galbraith
2009-01-05 15:19                               ` Mike Galbraith
2009-01-06  9:31                                 ` Mike Galbraith
2009-01-06 15:07                                   ` Vaidyanathan Srinivasan
2009-01-06 17:48                                     ` Mike Galbraith
2009-01-06 18:45                                       ` Balbir Singh
2009-01-07  8:59                                         ` Mike Galbraith
2009-01-07 11:26                                           ` Vaidyanathan Srinivasan
2009-01-07 14:36                                             ` Mike Galbraith
2009-01-07 15:35                                               ` Vaidyanathan Srinivasan
2009-01-08  8:06                                                 ` Mike Galbraith
2009-01-08 17:46                                                   ` Vaidyanathan Srinivasan
2009-01-09  6:00                                                     ` Mike Galbraith
2009-01-06 14:54                             ` Vaidyanathan Srinivasan
2008-12-30 17:31     ` Vaidyanathan Srinivasan

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=20090102221630.GF17240@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=svaidy@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.