I've added the linaro-dev list to the cc as I think my answer is useful for everyone working with Linaro's kernels...
On Tue, 2013-02-19 at 21:54 +0530, Viresh Kumar wrote:
On Feb 19, 2013 8:50 PM, "Dietmar Eggemann" dietmar.eggemann@arm.com wrote:
there're a couple of config switches for android and ubuntu:
There are 9 config switches for andoid and 4 for ubuntu.
$ ./scripts/kconfig/merge_config.sh linaro/configs/linaro-base.conf linaro/configs/vexpress.conf linaro/configs/big-LITTLE-MP.conf linaro/configs/ubuntu-minimal.conf | grep "^Actual value" | wc -l
$ ./scripts/kconfig/merge_config.sh linaro/configs/linaro-base.conf linaro/configs/vexpress.conf linaro/configs/big-LITTLE-MP.conf linaro/configs/android.conf | grep "^Actual value" | wc -l
which have a problem:
Value requested for CONFIG_FOO not in final .config Requested value: # CONFIG_FOO is not set Actual value:
Value requested for CONFIG_BAR not in final .config Requested value: CONFIG_BAR=y Actual value: # CONFIG_BAR is not set
My question is: Is there anybody making sure that those config
fragments
stay in sync with the release?
There isn't any one person making sure things stay in sync, though occasionally I have a look; if you think there is a bug, you should let me know or raise a bug in Launchpad (linaro-android or linaro-ubuntu projects?).
Note however, there are always going to be warnings when building a kernel config from a set of config fragments. The usual valid reasons are:
1. The platform enables a feature which isn't supported by a particular hardware device. E.g. Android has USB_G_ANDROID ("Android Composite Gadget") which requires the device to support USB OTG, which some don't (like Versatile Express).
2. The device wants to override a platform or Linaro default for whatever reason.
3. We have redundant options there to avoid bugs and wasted effort when people tweak other options.
For the specific case of the warnings we get for vexpress, I wouldn't consider any of them to be bugs. These are...
1. For CONFIG_OABI_COMPAT, see commit message for when I added this: http://git.linaro.org/gitweb?p=kernel/configs.git%3Ba=commit%3Bh=e1fccb9e6bf...
2. For CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND we are deliberately overriding the defaults in earlier platform configs. (That's part of the usecase for config fragments, later, more specific config fragments overriding earlier more generic ones.)
3. CONFIG_ENABLE_DEFAULT_TRACERS is there so Gator works. The fact that the recent addition of CONFIG_FUNCTION_TRACER in linaro-base.conf causes GENERIC_TRACER to be selected and disable ENABLE_DEFAULT_TRACERS (as it's a subset of tracing) is unfortunate, but if we removed ENABLE_DEFAULT_TRACERS then everything would break if anyone decided that as function tracer bloats the kernel and make it slower we should disable it again.
4. CONFIG_VEXPRESS_TC2_CPUIDLE is there so the old TC2 power management drivers work should I or someone else decided to drop the new drivers from there tree. (Unlikely, and once the driver code if properly consolidated I'll remove this old config option).
5. The rest of the warnings are Android options which are set but require features (like runtime power management or USB OTG) which aren't actually enabled on vexpress.
Cheers