FIXUP: sched: fix build for non-SMP target
authorPatrick Bellasi <patrick.bellasi@arm.com>
Fri, 22 Jul 2016 10:35:59 +0000 (11:35 +0100)
committerAmit Pundir <amit.pundir@linaro.org>
Wed, 14 Sep 2016 09:29:32 +0000 (14:59 +0530)
commitf0ba6a5d0c42e689bab7ed76738ac13046e7bd1a
tree50b25994d530eefea8400db0afb7e972b36a04d8
parent13a60dc148bd6646e09349a2d424e65c8c30c195
FIXUP: sched: fix build for non-SMP target

Currently the build for a single-core (e.g. user-mode) Linux is broken
and this configuration is required (at least) to run some network tests.

The main issues for the current code support on single-core systems are:
1. {se,rq}::sched_avg is not available nor maintained for !SMP systems
   This means that load and utilisation signals are NOT available in single
   core systems. All the EAS code depends on these signals.
2. sched_group_energy is also SMP dependant. Again this means that all the
   EAS setup and preparation code (energyn model initialization) has to be
   properly guarded/disabled for !SMP systems.
3. SchedFreq depends on utilization signal, which is not available on
   !SMP systems.
4. SchedTune is useless on unicore systems if SchedFreq is not available.
5. WALT machinery is not required on single-core systems.

This patch addresses all these issues by enforcing some constraints for
single-core systems:
a) WALT, SchedTune and SchedTune are now dependant on SMP
b) The default governor for !SMP systems is INTERACTIVE
c) The energy model initialisation/build functions are
d) Other minor code re-arrangements and CONFIG_SMP guarding to enable
   single core builds.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
drivers/cpufreq/Kconfig
include/linux/sched_energy.h
include/trace/events/sched.h
init/Kconfig
kernel/sched/Makefile
kernel/sched/fair.c
kernel/sched/sched.h