linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC RESEND 0/3] Introduce cpufreq minimum load QoS
@ 2020-05-26 15:16 Benjamin Gaignard
  2020-05-26 15:16 ` [RFC 1/3] PM: QoS: " Benjamin Gaignard
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Benjamin Gaignard @ 2020-05-26 15:16 UTC (permalink / raw)
  To: rjw, viresh.kumar, hugues.fruchet, mchehab, mcoquelin.stm32,
	alexandre.torgue, pavel, len.brown, valentin.schneider,
	vincent.guittot
  Cc: linux-pm, linux-kernel, linux-media, linux-stm32,
	linux-arm-kernel, Benjamin Gaignard

A first round [1] of discussions and suggestions have already be done on 
this series but without found a solution to the problem. I resend it to
progress on this topic.

When start streaming from the sensor the CPU load could remain very low 
because almost all the capture pipeline is done in hardware (i.e. without 
using the CPU) and let believe to cpufreq governor that it could use lower 
frequencies. If the governor decides to use a too low frequency that 
becomes a problem when we need to acknowledge the interrupt during the 
blanking time.
The delay to ack the interrupt and perform all the other actions before
the next frame is very short and doesn't allow to the cpufreq governor to
provide the required burst of power. That led to drop the half of the frames.

To avoid this problem, DCMI driver informs the cpufreq governors by adding
a cpufreq minimum load QoS resquest.

Benjamin 

[1] https://lkml.org/lkml/2020/4/24/360

Benjamin Gaignard (3):
  PM: QoS: Introduce cpufreq minimum load QoS
  cpufreq: governor: Use minimum load QoS
  media: stm32-dcmi: Inform cpufreq governors about cpu load needs

 drivers/cpufreq/cpufreq_governor.c        |   5 +
 drivers/media/platform/stm32/stm32-dcmi.c |   8 ++
 include/linux/pm_qos.h                    |  12 ++
 kernel/power/qos.c                        | 213 ++++++++++++++++++++++++++++++
 4 files changed, 238 insertions(+)

-- 
2.15.0


^ permalink raw reply	[flat|nested] 14+ messages in thread
* [RFC 0/3] Introduce cpufreq minimum load QoS
@ 2020-04-24 11:40 Benjamin Gaignard
  2020-04-24 11:40 ` [RFC 1/3] PM: QoS: " Benjamin Gaignard
  0 siblings, 1 reply; 14+ messages in thread
From: Benjamin Gaignard @ 2020-04-24 11:40 UTC (permalink / raw)
  To: rjw, viresh.kumar, hugues.fruchet, mchehab, mcoquelin.stm32,
	alexandre.torgue, pavel, len.brown
  Cc: linux-pm, linux-kernel, linux-media, linux-stm32,
	linux-arm-kernel, Benjamin Gaignard

When start streaming from the sensor the CPU load could remain very low 
because almost all the capture pipeline is done in hardware (i.e. without 
using the CPU) and let believe to cpufreq governor that it could use lower 
frequencies. If the governor decides to use a too low frequency that 
becomes a problem when we need to acknowledge the interrupt during the 
blanking time.
The delay to ack the interrupt and perform all the other actions before
the next frame is very short and doesn't allow to the cpufreq governor to
provide the required burst of power. That led to drop the half of the frames.

To avoid this problem, DCMI driver informs the cpufreq governors by adding
a cpufreq minimum load QoS resquest.

Benjamin Gaignard (3):
  PM: QoS: Introduce cpufreq minimum load QoS
  cpufreq: governor: Use minimum load QoS
  media: stm32-dcmi: Inform cpufreq governors about cpu load needs

 drivers/cpufreq/cpufreq_governor.c        |   5 +
 drivers/media/platform/stm32/stm32-dcmi.c |   8 ++
 include/linux/pm_qos.h                    |  12 ++
 kernel/power/qos.c                        | 213 ++++++++++++++++++++++++++++++
 4 files changed, 238 insertions(+)

-- 
2.15.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-05-27 15:04 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-26 15:16 [RFC RESEND 0/3] Introduce cpufreq minimum load QoS Benjamin Gaignard
2020-05-26 15:16 ` [RFC 1/3] PM: QoS: " Benjamin Gaignard
2020-05-26 15:16 ` [RFC 2/3] cpufreq: governor: Use " Benjamin Gaignard
2020-05-26 15:16 ` [RFC 3/3] media: stm32-dcmi: Inform cpufreq governors about cpu load needs Benjamin Gaignard
2020-05-27 10:09 ` [RFC RESEND 0/3] Introduce cpufreq minimum load QoS Valentin Schneider
2020-05-27 11:17   ` Benjamin GAIGNARD
2020-05-27 12:14     ` Valentin Schneider
2020-05-27 13:11       ` Benjamin GAIGNARD
2020-05-27 15:02         ` Valentin Schneider
2020-05-27 12:22     ` Vincent Guittot
2020-05-27 12:48       ` Benjamin GAIGNARD
2020-05-27 14:54         ` Benjamin GAIGNARD
2020-05-27 15:03           ` Rafael J. Wysocki
  -- strict thread matches above, loose matches on Subject: below --
2020-04-24 11:40 [RFC " Benjamin Gaignard
2020-04-24 11:40 ` [RFC 1/3] PM: QoS: " Benjamin Gaignard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).