public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: 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: Tue, 30 Dec 2008 08:20:17 +0100	[thread overview]
Message-ID: <20081230072017.GA20225@elte.hu> (raw)
In-Reply-To: <20081230064432.GA30101@balbir.in.ibm.com>


* Balbir Singh <balbir@linux.vnet.ibm.com> wrote:

> * 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.
> > 
> 
> Yes, it is, I think one way to identify it on the x86 box would be to 
> use the performance counter patches, I'll see it I can get it working.

yeah, good idea, and it's easy to get perf-counters working: just boot 
tip/master on a Core2 (or later) Intel CPU [see below about how to use 
perfcounters on other CPUs], and pick up timec.c:

   http://redhat.com/~mingo/perfcounters/timec.c

then run a kernel build like this:

   $ ./timec -e -5,-4,-3,0,1,2,3,4,5 make -j16 bzImage

that's all. You should get an array of metrics like this:

 [...]
Kernel: arch/x86/boot/bzImage is ready  (#28)

 Performance counter stats for 'make':

  628315.871980  task clock ticks     (msecs)

          42330  CPU migrations       (events)
         124980  context switches     (events)
       18698292  pagefaults           (events)
  1351875946010  CPU cycles           (events)
  1121901478363  instructions         (events)
    10654788968  cache references     (events)
      633581867  cache misses         (events)
   247508675357  branches             (events)
    21567244144  branch misses        (events)

 Wall-clock time elapsed: 118348.109066 msecs

I'd guess the CPU migrations, context-switches, cycles+instructions 
counters are the most interesting ones. I.e. on a Core2 a good metric is 
probably:

   $ ./timec -e -5,-4,0,1 make -j16 bzImage

[ If you see any weirdnesses in the numbers, then you should first suspect 
  some perf-counters bug. Please report any problems to us! ]

If your systems are not Core2 based then patches to extend perfcounters 
support to those CPUs are welcome as well ;-)

NOTE: the sw counters (migrations, per task cost) are available on all 
CPUs. I.e. you can always do:

   $ ./timec -e -5,-4,-3 make -j16 bzImage

regardless of CPU type.

And note that the wall-clock and task-clock results in this case will be 
far more accurate than normal 'time make -j16 bzImage' output.

	Ingo

  reply	other threads:[~2008-12-30  7:20 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 [this message]
2008-12-30 18:07       ` Vaidyanathan Srinivasan
2009-01-02  7:26         ` Vaidyanathan Srinivasan
2009-01-02 22:16           ` Ingo Molnar
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=20081230072017.GA20225@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox