All of lore.kernel.org
 help / color / mirror / Atom feed
From: Morten Rasmussen <Morten.Rasmussen@arm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "panto@antoniou-consulting.com" <panto@antoniou-consulting.com>,
	"smuckle@quicinc.com" <smuckle@quicinc.com>,
	Juri Lelli <juri.lelli@gmail.com>,
	"mingo@elte.hu" <mingo@elte.hu>,
	"linaro-sched-sig@lists.linaro.org" 
	<linaro-sched-sig@lists.linaro.org>,
	"rostedt@goodmis.org" <rostedt@goodmis.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"geoff@infradead.org" <geoff@infradead.org>,
	"efault@gmx.de" <efault@gmx.de>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Plumbers: Tweaking scheduler policy micro-conf RFP
Date: Fri, 18 May 2012 17:24:45 +0100	[thread overview]
Message-ID: <20120518162445.GF18312@e103034-lin.cambridge.arm.com> (raw)
In-Reply-To: <20120518161817.GE18312@e103034-lin.cambridge.arm.com>

On Fri, May 18, 2012 at 05:18:17PM +0100, Morten Rasmussen wrote:
> On Tue, May 15, 2012 at 04:35:41PM +0100, Peter Zijlstra wrote:
> > On Tue, 2012-05-15 at 17:05 +0200, Vincent Guittot wrote:
> > > On 15 May 2012 15:00, Peter Zijlstra <peterz@infradead.org> wrote:
> > > > On Tue, 2012-05-15 at 14:57 +0200, Vincent Guittot wrote:
> > > >>
> > > >> Not sure that nobody cares but it's much more that scheduler,
> > > >> load_balance and sched_mc are sensible enough that it's difficult to
> > > >> ensure that a modification will not break everything for someone
> > > >> else.
> > > >
> > > > Thing is, its already broken, there's nothing else to break :-)
> > > >
> > > 
> > > sched_mc is the only power-aware knob in the current scheduler. It's
> > > far from being perfect but it seems to work on some ARM platform at
> > > least. You mentioned at the scheduler mini-summit that we need a
> > > cleaner replacement and everybody has agreed on that point. Is anybody
> > > working on it yet ? 
> > 
> > Apparently not.. 
> > 
> > > and can we discuss at Plumber's what this replacement would look like ?
> > 
> > one knob: sched_balance_policy with tri-state {performance, power, auto}
> 
> Interesting. What would the power policy look like? Would performance
> and power be the two extremes of the power/performance trade-off? In
> that case I would assume that most embedded systems would be using auto.
> 
> > 
> > Where auto should likely look at things like are we on battery and
> > co-ordinate with cpufreq muck or whatever.
> > 
> > Per domain knobs are insane, large multi-state knobs are insane, the
> > existing scheme is therefore insane^2. Can you find a sysad who'd like
> > to explore 3^3=27 states for optimal power/perf for his workload on a
> > simple 2 socket hyper-threaded machine and 3^4=81 state space for 8
> > sockets etc..?
> > 
> > As to the exact policy, I think the current 2 (load-balance + wakeup) is
> > the sensible one..
> > 
> > Also, I still have this pending email from you asking about the topology
> > setup stuff I really need to reply to.. but people keep sending me bugs
> > reports :/
> > 
> > But really short, look at kernel/sched/core.c:default_topology[]
> > 
> > I'd like to get rid of sd_init_* into a single function like
> > sd_numa_init(), this would mean all archs would need to do is provide a
> > simple list of ever increasing masks that match their topology.
> > 
> > To aid this we can add some SDTL_flags, initially I was thinking of:
> > 
> >  SDTL_SHARE_CORE	-- aka SMT
> >  SDTL_SHARE_CACHE	-- LLC cache domain (typically multi-core)
> >  SDTL_SHARE_MEMORY	-- NUMA-node (typically socket)
> > 
> > The 'performance' policy is typically to spread over shared resources so
> > as to minimize contention on these.
> >
> 
> Would it be worth extending this architecture specification to contain
> more information like CPU_POWER for each core? After having experimented
> a bit with scheduling on big.LITTLE my experience is that more
> information about the platform is needed to make proper scheduling
> decisions. So if the topology definition is going to be more generic and
> be set up by the architecture it could be worth adding all the bits of
> information that the scheduler would need to that data structure.
> 
> With such data structure, the scheduler would only need one knob to
> adjust the power/performance trade-off. Any thoughts?
>  

One more thing. I have experimented with PJT's load-tracking patchset
and found it very useful for big.LITTLE scheduling. Is there any plans
for including them?

	Morten

> > If you want to add some power we need some extra flags, maybe something
> > like:
> > 
> >  SDTL_SHARE_POWERLINE	-- power domain (typically socket)
> > 
> > so you know where the boundaries are where you can turn stuff off so you
> > know what/where to pack bits.
> > 
> > Possibly we also add something like:
> > 
> >  SDTL_PERF_SPREAD	-- spread on performance mode
> >  SDTL_POWER_PACK	-- pack on power mode
> > 
> > To over-ride the defaults. But ideally I'd leave those until after we've
> > got the basics working and there is a clear need for them (with a
> > spread/pack default for perf/power aware).
> 
> In my experience power optimized scheduling is quite tricky, especially
> if you still want some level of performance. For heterogeneous
> architecture packing might not be the best solution. Some indication of
> the power/performance profile of each core could be useful.
> 
> Best regards,
> Morten
> 
> 
> _______________________________________________
> linaro-sched-sig mailing list
> linaro-sched-sig@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-sched-sig
> 


  parent reply	other threads:[~2012-05-18 16:24 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-11 16:16 Plumbers: Tweaking scheduler policy micro-conf RFP Vincent Guittot
2012-05-11 16:26 ` Steven Rostedt
2012-05-11 16:38   ` Vincent Guittot
2012-05-15  8:41     ` Juri Lelli
2012-05-15  0:53 ` Paul E. McKenney
2012-05-15  8:02 ` Vincent Guittot
2012-05-15  8:34   ` mou Chen
2012-05-15  9:07     ` Vincent Guittot
2012-05-15  9:17       ` Pantelis Antoniou
2012-05-15 10:28         ` Peter Zijlstra
2012-05-15 11:35           ` Pantelis Antoniou
2012-05-15 11:58             ` Peter Zijlstra
2012-05-15 12:32               ` Pantelis Antoniou
2012-05-15 12:59                 ` Peter Zijlstra
2012-05-19 14:58               ` Luming Yu
2012-05-15 20:26             ` valdis.kletnieks
2012-05-15 20:33               ` Peter Zijlstra
2012-05-16 12:08               ` Pantelis Antoniou
2012-05-15 12:23   ` Peter Zijlstra
2012-05-15 12:27     ` Peter Zijlstra
2012-05-15 12:57     ` Vincent Guittot
2012-05-15 13:00       ` Peter Zijlstra
2012-05-15 15:05         ` Vincent Guittot
2012-05-15 15:19           ` Paul E. McKenney
2012-05-15 15:27             ` Vincent Guittot
2012-05-15 15:35           ` Peter Zijlstra
2012-05-15 15:45             ` Peter Zijlstra
2012-05-16 18:30             ` Peter Zijlstra
2012-05-19 17:08               ` Linus Torvalds
2012-05-19 22:55                 ` Peter Zijlstra
2012-05-22  2:38                   ` Chen
2012-05-22  5:14                     ` Chen
2012-05-30  7:20                       ` Ingo Molnar
2012-05-23 15:03                     ` Ingo Molnar
2012-05-23 15:43                       ` Joe Perches
2012-05-23 15:50                         ` Ingo Molnar
2012-05-23 15:56                           ` Joe Perches
2012-05-23 15:59                             ` Ingo Molnar
2012-05-29 18:17                           ` [PATCH] printk: Shrink printk_sched buffer size, eliminate it when !CONFIG_PRINTK Joe Perches
2012-06-05 16:04                             ` Joe Perches
2012-06-06  7:25                               ` Ingo Molnar
2012-06-06  7:33                             ` Ingo Molnar
2012-06-06  7:42                               ` Joe Perches
2012-05-19 23:13                 ` Plumbers: Tweaking scheduler policy micro-conf RFP Peter Zijlstra
2012-05-19 23:22                 ` Peter Zijlstra
2012-05-21  7:16                   ` Ingo Molnar
2012-05-21 16:56                     ` Linus Torvalds
2012-05-16 18:49             ` Vaidyanathan Srinivasan
2012-05-16 19:40               ` Peter Zijlstra
2012-05-16 21:20             ` Vincent Guittot
     [not found]             ` <20120518161817.GE18312@e103034-lin.cambridge.arm.com>
2012-05-18 16:24               ` Morten Rasmussen [this message]
2012-05-18 16:39                 ` Peter Zijlstra
2012-05-18 16:46                 ` Pantelis Antoniou
2012-05-15 16:30           ` Vaidyanathan Srinivasan
2012-05-15 18:13             ` Vincent Guittot

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=20120518162445.GF18312@e103034-lin.cambridge.arm.com \
    --to=morten.rasmussen@arm.com \
    --cc=efault@gmx.de \
    --cc=geoff@infradead.org \
    --cc=juri.lelli@gmail.com \
    --cc=linaro-sched-sig@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=panto@antoniou-consulting.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=smuckle@quicinc.com \
    --cc=tglx@linutronix.de \
    /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.