* Arjan van de Ven <arjan@linux.intel.com> [2010-10-20 09:03:23]:
Hi Arjan,
I agree with you that we need not add 0.5K extra code to x86 cpuidle
framework that is in use by most systems. However, this is only an
intermediate step (RFC) before we move/merge registration parts of
cpuidle into the kernel and leave only the governors as pluggable.
I see this RFC as an incremental step to move all idle routine
registration functionality into the kernel and keep governors and low
level drivers as modules. This will allow non x86 archs with just one
idle routine to keep minimal overhead. (Though this is becoming very
rare).
As stated in the goal the solution should satisfy the following
requirements:
4. Minimal overhead for arch with following use cases
a) Single compile time defined idle routine, no need for
runtime/boot time selection
b) Single idle routine, but selectable during boot/runtime.
No need for cpuidle governors
c) Runtime selection of single or multi-idle routines and
demand loading/usage of governors to select one among the
set of idle routines. (Current x86 model)
Making current cpuidle as default in kernel and make everybody else
register into cpuidle will satisfy (c), but we will need to slim down
the framework and keep parts of it as module to satisfy (b).
I think we agree on the goal, but need some discussion on what should
be the steps to reach the goal with incremental code changes and
without breaking multiple architectures at the same time.
--Vaidy
--