All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/fair: Invoke cpufreq hooks for CONFIG_SMP unset
@ 2016-05-06 12:58 Rafael J. Wysocki
  2016-05-06 19:08 ` Steve Muckle
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Rafael J. Wysocki @ 2016-05-06 12:58 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux PM list, Linux Kernel Mailing List, Viresh Kumar,
	Srinivas Pandruvada, Steve Muckle, Ingo Molnar

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Commit 34e2c555f3e1 (cpufreq: Add mechanism for registering utilization
update callbacks) overlooked the fact that update_load_avg(), where
CFS invokes cpufreq utilization update hooks, becomes an empty stub for
CONFIG_SMP unset.  In consequence, if CONFIG_SMP is not set, cpufreq
governors are never invoked from CFS and they do not have a chance to
evaluate CPU performace levels and update them often enough.  Needless
to say, things don't work as expected then.

Fix the problem by making the !CONFIG_SMP stub of update_load_avg()
invoke cpufreq update hooks too.

Fixes: 34e2c555f3e1 (cpufreq: Add mechanism for registering utilization update callbacks)
Reported-by: Steve Muckle <steve.muckle@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

This needs to go into v4.6.

---
 kernel/sched/fair.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Index: linux-pm/kernel/sched/fair.c
===================================================================
--- linux-pm.orig/kernel/sched/fair.c
+++ linux-pm/kernel/sched/fair.c
@@ -3030,7 +3030,14 @@ static int idle_balance(struct rq *this_
 
 #else /* CONFIG_SMP */
 
-static inline void update_load_avg(struct sched_entity *se, int update_tg) {}
+static inline void update_load_avg(struct sched_entity *se, int not_used)
+{
+	struct cfs_rq *cfs_rq = cfs_rq_of(se);
+	struct rq *rq = rq_of(cfs_rq);
+
+	cpufreq_trigger_update(rq_clock(rq));
+}
+
 static inline void
 enqueue_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se) {}
 static inline void


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

end of thread, other threads:[~2016-05-10  8:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06 12:58 [PATCH] sched/fair: Invoke cpufreq hooks for CONFIG_SMP unset Rafael J. Wysocki
2016-05-06 19:08 ` Steve Muckle
2016-05-06 19:36   ` Rafael J. Wysocki
2016-05-07  6:13 ` Peter Zijlstra
2016-05-07  6:30   ` Ingo Molnar
2016-05-09  8:30     ` Peter Zijlstra
2016-05-09 23:53     ` Steve Muckle
2016-05-09 23:58       ` Rafael J. Wysocki
2016-05-10  8:13         ` Ingo Molnar
2016-05-07  6:37 ` [tip:sched/urgent] sched/fair: Fix !CONFIG_SMP kernel cpufreq governor breakage tip-bot for Rafael J. Wysocki

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.