From: Ingo Molnar <mingo@elte.hu>
To: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Cc: Arun R Bharadwaj <arun@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org,
linux-pm@lists.linux-foundation.org, a.p.zijlstra@chello.nl,
ego@in.ibm.com, tglx@linutronix.de, andi@firstfloor.org,
venkatesh.pallipadi@intel.com, vatsa@linux.vnet.ibm.com,
arjan@infradead.org
Subject: Re: [v2 PATCH 0/4] timers: framework for migration between CPU
Date: Wed, 4 Mar 2009 19:29:14 +0100 [thread overview]
Message-ID: <20090304182914.GF1537@elte.hu> (raw)
In-Reply-To: <20090304180657.GA27520@dirshya.in.ibm.com>
* Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> wrote:
> * Ingo Molnar <mingo@elte.hu> [2009-03-04 18:33:21]:
>
> >
> > * Arun R Bharadwaj <arun@linux.vnet.ibm.com> wrote:
> >
> > > $taskset -c 4,5,6,7 make -j4
> > >
> > > my_driver queuing timers continuously on CPU 10.
> > >
> > > idle load balancer currently on CPU 15
> > >
> > >
> > > Case1: Without timer migration Case2: With timer migration
> > >
> > > -------------------- --------------------
> > > | Core | LOC Count | | Core | LOC Count |
> > > | 4 | 2504 | | 4 | 2503 |
> > > | 5 | 2502 | | 5 | 2503 |
> > > | 6 | 2502 | | 6 | 2502 |
> > > | 7 | 2498 | | 7 | 2500 |
> > > | 10 | 2501 | | 10 | 35 |
> > > | 15 | 2501 | | 15 | 2501 |
> > > -------------------- --------------------
> > >
> > > --------------------- --------------------
> > > | Core | Sleep time | | Core | Sleep time |
> > > | 4 | 0.47168 | | 4 | 0.49601 |
> > > | 5 | 0.44301 | | 5 | 0.37153 |
> > > | 6 | 0.38979 | | 6 | 0.51286 |
> > > | 7 | 0.42829 | | 7 | 0.49635 |
> > > | 10 | 9.86652 | | 10 | 10.04216 |
> > > | 15 | 0.43048 | | 15 | 0.49056 |
> > > --------------------- ---------------------
> > >
> > > Here, all the timers queued by the driver on CPU10 are moved to CPU15,
> > > which is the idle load balancer.
> >
> > The numbers with this automatic method based on the ilb-cpu look
> > pretty convincing. Is this what you expected it to be?
>
> Yes Ingo, this is the expected results and looks pretty good. However
> there are two parameters controlled in this experiment:
>
> 1) The system is moderately loaded with kernbench so that there are
> some busy CPUs and some idle cpus, and the no_hz mask is does not
> change often. This leads to stable ilb-cpu selection. If the
> system is either completely idle or loaded too little leading to
> ilb nominations, then timers keep following the ilb cpu and it is
> very difficult to experimentally observe the benefits.
>
> Even if the ilb bounces, consolidating timers should increase
> overlap between timers and reduce the wakeup from idle.
>
> Optimising the ilb selection should significantly improve
> experimental results for this patch.
>
> 2) The timer test driver creates quite large timer load so that the
> effect of migration is observable as sleep time difference on the
> expected target cpu. This kind of timer load may not be uncommon
> with lots of application stack loaded in an enterprise system
the important thing to watch out for is to not have _worse_
performance due to ilb jumping too much. So as long as you can
prove that numbers dont get worse you are golden.
Power-saving via migration will only work if there's a
concentrated workload to begin with.
So the best results will be in combination with scheduler
power-saving patches. (which too make the ilb jump less in
essence)
So by getting scheduler power saving enhancements your method
will work better too - there's good synergy and no dependency on
any user-space component.
Btw., could you please turn the runtime switch into a /proc/sys
sysctl, and only when CONFIG_SCHED_DEBUG=y. Otherwise it should
be default-enabled with no ability to turn it off.
Ingo
next prev parent reply other threads:[~2009-03-04 18:29 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-04 12:12 [v2 PATCH 0/4] timers: framework for migration between CPU Arun R Bharadwaj
2009-03-04 12:14 ` [v2 PATCH 1/4] timers: framework to identify pinned timers Arun R Bharadwaj
2009-03-05 16:53 ` Oleg Nesterov
2009-03-05 16:53 ` Oleg Nesterov
2009-03-06 6:14 ` Arun R Bharadwaj
2009-03-06 15:03 ` Oleg Nesterov
2009-03-06 15:03 ` Oleg Nesterov
2009-03-06 6:14 ` Arun R Bharadwaj
2009-03-06 7:01 ` Arun R Bharadwaj
2009-03-06 7:01 ` Arun R Bharadwaj
2009-03-04 12:14 ` Arun R Bharadwaj
2009-03-04 12:16 ` [v2 PATCH 2/4] timers: identifying the existing pinned hrtimers Arun R Bharadwaj
2009-03-04 12:16 ` Arun R Bharadwaj
2009-03-04 12:18 ` [v2 PATCH 3/4] timers: sysfs hook to enable timer migration Arun R Bharadwaj
2009-03-04 12:18 ` Arun R Bharadwaj
2009-03-04 12:19 ` [v2 PATCH 4/4] timers: logic " Arun R Bharadwaj
2009-03-04 16:33 ` Daniel Walker
2009-03-04 16:52 ` Arun R Bharadwaj
2009-03-04 16:52 ` Arun R Bharadwaj
2009-03-04 16:33 ` Daniel Walker
2009-03-05 15:34 ` Oleg Nesterov
2009-03-05 15:34 ` Oleg Nesterov
2009-03-05 16:23 ` Oleg Nesterov
2009-03-05 16:23 ` Oleg Nesterov
2009-03-06 3:21 ` Gautham R Shenoy
2009-03-06 3:21 ` Gautham R Shenoy
2009-03-06 14:50 ` Oleg Nesterov
2009-03-06 15:49 ` Gautham R Shenoy
2009-03-06 17:08 ` Oleg Nesterov
2009-03-06 17:26 ` Gautham R Shenoy
2009-03-06 17:26 ` Gautham R Shenoy
2009-03-06 17:08 ` Oleg Nesterov
2009-03-06 15:49 ` Gautham R Shenoy
2009-03-06 14:50 ` Oleg Nesterov
2009-03-04 12:19 ` Arun R Bharadwaj
2009-03-04 17:33 ` [v2 PATCH 0/4] timers: framework for migration between CPU Ingo Molnar
2009-03-04 18:06 ` Vaidyanathan Srinivasan
2009-03-04 18:29 ` Ingo Molnar
2009-03-04 18:29 ` Ingo Molnar [this message]
2009-03-04 18:06 ` Vaidyanathan Srinivasan
2009-03-04 17:33 ` Ingo Molnar
2009-03-06 0:14 ` Arjan van de Ven
2009-03-06 0:14 ` Arjan van de Ven
2009-03-06 4:23 ` Arun R Bharadwaj
2009-03-06 4:23 ` Arun R Bharadwaj
-- strict thread matches above, loose matches on Subject: below --
2009-03-04 12:12 Arun R Bharadwaj
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=20090304182914.GF1537@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=andi@firstfloor.org \
--cc=arjan@infradead.org \
--cc=arun@linux.vnet.ibm.com \
--cc=ego@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=svaidy@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=vatsa@linux.vnet.ibm.com \
--cc=venkatesh.pallipadi@intel.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.