mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Steve Muckle <steve.muckle@linaro.org>,
	Ingo Molnar <mingo@redhat.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Juri Lelli <Juri.Lelli@arm.com>,
	Patrick Bellasi <patrick.bellasi@arm.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Ricky Liang <jcliang@chromium.org>
Subject: Re: [RFCv7 PATCH 03/10] sched: scheduler-driven cpu frequency selection
Date: Tue, 1 Mar 2016 15:31:40 +0100	[thread overview]
Message-ID: <20160301143140.GW6357@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <14036594.SVLbCmZIEY@vostro.rjw.lan>

On Sun, Feb 28, 2016 at 03:26:21AM +0100, Rafael J. Wysocki wrote:

> > > That said I'm unconvinced about the approach still.
> > > 
> > > Having more RT threads in a system that already is under RT pressure seems like
> > > a recipe for trouble.  Moreover, it's likely that those new RT threads will
> > > disturb the system's normal operation somehow even without the RT pressure and
> > > have you investigated that?
> > 
> > Sorry I'm not sure what you mean by disturb normal operation.
> 
> That would introduce a number of extra RT threads that would be woken up quite
> often and on a regular basis, so there would be some extra RT noise in the
> system, especially on systems with one CPU per cpufreq policy and many CPUs.
> 
> That's not present ATM and surely need not be completely transparent.

Having RT tasks should not be a problem. You can always set their
priority such that they do not interfere with an actual RT workload.

> > Generally speaking, increasing the capacity of a heavily loaded system
> > seems to me to be something that should run urgently, so that the system
> > can potentially get itself out of trouble and meet the workload's needs.
> > 
> > > Also having them per policy may be overkill and
> > > binding them to policy CPUs only is not necessary.
> > > 
> > > Overall, it looks like a dynamic pool of threads that may run on every CPU
> > > might be a better approach, but that would almost duplicate the workqueues
> > > subsystem, so is it really worth it?
> > > 
> > > And is the problem actually visible in practice?  I have no record of any reports
> > > mentioning it, although theoretically it's been there forever, so had it been
> > > real, someone would have noticed it and complained about it IMO.
> > 
> > While I don't have a test case drawn up to provide it seems like it'd be
> > easy to create one. More importantly the interactive governor in Android
> > uses this same kind of model, starting a frequency change thread and
> > making it RT. Android is particularly sensitive to latency in frequency
> > response. So that's likely one big reason why you're not hearing about
> > this issue - some folks have already worked around it.
> 
> OK, so Android is the reason. :-)
> 
> Fair enough.  I still think that care is needed here, though.

So I sort of see the point of having per-cpu RT kthread tasks to effect
the OPP change for CFS. And here I would indeed suggest just having a
task per cpu, moving tasks about is too complex and generates even more
noise.

But the problem of having RT tasks is that you should run RT tasks at
max OPP.

Now you can probably fudge things and not account these RT tasks to the
RT 'workload' since you know their characteristics etc.. But its going
to be ugly I suspect.

  reply	other threads:[~2016-03-01 14:31 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23  1:22 [RFCv7 PATCH 00/10] sched: scheduler-driven CPU " Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 01/10] sched: Compute cpu capacity available at current frequency Steve Muckle
2016-02-23  1:41   ` Rafael J. Wysocki
2016-02-23  9:19     ` Peter Zijlstra
2016-02-26  1:37       ` Rafael J. Wysocki
2016-02-26  9:14         ` Peter Zijlstra
2016-02-23  1:22 ` [RFCv7 PATCH 02/10] cpufreq: introduce cpufreq_driver_is_slow Steve Muckle
2016-02-23  1:31   ` Rafael J. Wysocki
2016-02-26  0:50     ` Michael Turquette
2016-02-26  1:07       ` Steve Muckle
2016-02-26  1:16       ` Rafael J. Wysocki
     [not found]         ` <20160226185503.2278.20479@quark.deferred.io>
2016-02-26 21:00           ` Rafael J. Wysocki
2016-02-23  1:22 ` [RFCv7 PATCH 03/10] sched: scheduler-driven cpu frequency selection Steve Muckle
2016-02-25  3:55   ` Rafael J. Wysocki
2016-02-25  9:21     ` Peter Zijlstra
2016-02-25 21:04       ` Rafael J. Wysocki
2016-02-25  9:28     ` Peter Zijlstra
2016-02-25 21:08       ` Rafael J. Wysocki
2016-02-26  9:18         ` Peter Zijlstra
2016-02-27  0:08           ` Rafael J. Wysocki
2016-03-01 12:57             ` Peter Zijlstra
2016-03-01 19:44               ` Rafael J. Wysocki
2016-02-25 11:04     ` Rafael J. Wysocki
2016-02-26  0:34     ` Steve Muckle
2016-02-27  2:39       ` Rafael J. Wysocki
2016-02-27  4:17         ` Steve Muckle
2016-02-28  2:26           ` Rafael J. Wysocki
2016-03-01 14:31             ` Peter Zijlstra [this message]
2016-03-01 20:32               ` Rafael J. Wysocki
2016-03-01 13:26           ` Peter Zijlstra
2016-03-01 13:17       ` Peter Zijlstra
2016-03-02  7:49       ` Michael Turquette
2016-03-03  2:49         ` Rafael J. Wysocki
2016-03-03  3:50           ` Steve Muckle
2016-03-03  9:34             ` Juri Lelli
2016-03-03 13:03         ` Peter Zijlstra
2016-03-03 14:21   ` Ingo Molnar
2016-02-23  1:22 ` [RFCv7 PATCH 04/10] sched/fair: add triggers for OPP change requests Steve Muckle
2016-03-01  6:51   ` Ricky Liang
2016-03-03  3:55     ` Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 05/10] sched/{core,fair}: trigger OPP change request on fork() Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 06/10] sched/fair: cpufreq_sched triggers for load balancing Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 07/10] sched/fair: jump to max OPP when crossing UP threshold Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 08/10] sched: remove call of sched_avg_update from sched_rt_avg_update Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 09/10] sched/deadline: split rt_avg in 2 distincts metrics Steve Muckle
2016-02-23  1:22 ` [RFCv7 PATCH 10/10] sched: rt scheduler sets capacity requirement Steve Muckle
2016-02-23  1:33 ` [RFCv7 PATCH 00/10] sched: scheduler-driven CPU frequency selection Steve Muckle
2016-03-30  0:45 ` Yuyang Du
2016-03-31  1:35   ` Steve Muckle
2016-03-30 20:22     ` Yuyang Du

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=20160301143140.GW6357@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=Juri.Lelli@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=jcliang@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=morten.rasmussen@arm.com \
    --cc=mturquette@baylibre.com \
    --cc=patrick.bellasi@arm.com \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=steve.muckle@linaro.org \
    --cc=vincent.guittot@linaro.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

all inboxes | Powered by JetHome®