Thread (19 messages) flat view 19 messages, 5 authors, 2016-09-12

Re: [PATCH 2/2] sched: cpufreq: use rt_avg as estimate of required RT CPU capacity

From: Thomas Gleixner <hidden>
Date: 2016-08-31 17:04:01
Also in: lkml

On Wed, 31 Aug 2016, Steve Muckle wrote:
On Wed, Aug 31, 2016 at 04:39:07PM +0200, Peter Zijlstra wrote:
quoted
On Fri, Aug 26, 2016 at 11:40:48AM -0700, Steve Muckle wrote:
quoted
A policy of going to fmax on any RT activity will be detrimental
for power on many platforms. Often RT accounts for only a small amount
of CPU activity so sending the CPU frequency to fmax is overkill. Worse
still, some platforms may not be able to even complete the CPU frequency
change before the RT activity has already completed.

Cpufreq governors have not treated RT activity this way in the past so
it is not part of the expected semantics of the RT scheduling class. The
DL class offers guarantees about task completion and could be used for
this purpose.
Not entirely true. People have simply disabled cpufreq because of this.

Yes, RR/FIFO are a pain, but they should still be deterministic, and
variable cpufreq destroys that.
That is the way it's been with cpufreq and many systems (including all
mobile devices) rely on that to not destroy power. RT + variable cpufreq
is not deterministic.

Given we don't have good constraints on RT tasks I don't think we should
try to strengthen the semantics there. Folks should either move to DL if
they want determinism *and* not-sucky power, or continue disabling
cpufreq if they are able to do so.
RT deterministic behaviour is all about meeting the deadlines. If your
deadline is relaxed enough that you can meet it even with the lowest cpu
frequency then it's perfectly fine to enable cpufreq. The same logic applies
to C-States.

There are a lot of RT systems out there which enable both. If cpufreq or
c-states cause a deadline violation because the constraints of the system are
tight, then people will disable it and we need a knob for both.

Realtime is not as fast as possible. It's as fast as specified.
 
Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help