On 06/10/2012 05:53 PM, the mail apparently from Andy Green included:
These are the suspicious things I found from the diff between linaro-android-3.4 (from http://git.linaro.org/gitweb?p=people/jstultz/android.git%3Ba=shortlog%3Bh=r... at HEAD 8674fd7a65aeff35c3879cf0d56e78c93ee62e2c) vs v3.4. Some are clear cut and others change code I don't really understand, but others on this list will.
I noticed while making patches for these that the basis for the diff was upstream/android-3.4 instead of linaro-android-3.4 I thought I was using.
Studying the diff between those two, I see there are already changes addressing some of these problems.
1) drivers/input/evdev.c: adds wakelock code not dependent on
ANDROID *** need discussion ***
Wakelocks got changed in their include file to generate empty structs and apis in case CONFIG_WAKELOCK is not defined.
That solves the wakelock part of 16, 17, 18.
16 introduces a flag in mmc code, I am not sure if nulling out the wakelock code but leaving the flag is the same as not having the flag.
3) add net/activity_stats.c contingent on NET_ACTIVITY_STATS ***
BUG *** default y
fixed
4) net/Kconfig: add ANDROID_PARANOID_NETWORK *** BUG *** default
Y: needs changing
fixed
8) kernel/power/Kconfig: ***BUG*** HAS_WAKELOCK, WAKELOCK,
USER_WAKELOCK all introduced as default y
fixed
The debug_ll printk problem is also solved.
13) drivers/char/Kconfig: Add DEVMEM *** BUG *** default y ; add
DCC_TTY (harmless)
fixed
That leaves the following:
2) *** BUG *** changes net/wireless/scan.c not protected by
CFG80211_ALLOW_RECONNECT: IEEE80211_SCAN_RESULT_EXPIRE reduced to 3s from 15s whether configured or not
5) mm/page_alloc.c: replace constant of 1 with filescope int
min_free_order_shift defaults to 1 but changeable from sysctl *** Needs comment ***
6) fs/proc.c: add support for Android-specific OOM adjust
interface... ***BUG*** should be contingent on CONFIG_ANDROID or the ANDROID OOM config
7) kernel/cgroup.c: adds a "queue of wairer to do rmdir() cgroup",
removes most content from free_css_set_work(), screws with much else in there, no idea if that makes cgroups better or worse, but the changes are not contingent on anything *** needs discussion ***
9) kernel/printk.c: *** BUG? *** unconditionally remove CPU_DYING
notification from console_cpu_notify, log_buf_get_len, log_buf_clear, log_buf_copy apis added
10) kernel/sched/core.c: __might_sleep_init_called flag
introduction (harmless) change __might_sleep processing *** Needs checking ***; add allow_attach cgroup api callback, if not same task actig on itself then confirm CAP_SYS_NICE, or effective uid is suid (seems good); only requeue task if any "ancestors" are the one element in queue as well as if it's just us (seems good)
11) kernel/sysctl.c: add min_order_free_shift change (pagealloc.c)
interface *** Needs comment ***
12) drivers/base/power/main.c: add driver suspend / resume timeout
concept, no driver may take more than 12s suspending or BUG(), not dependent on any CONFIG_ probably benficial but *** Needs discussion ***
14) drivers/cpuidle/governors/menu.c: remove scaling formula "mult
+= 2 * get_loadavg();" *** needs discussion ***
15) drivers/mmc/card/block.c: change computation in
mmc_get_devidx() *** needs discussion ***; add pr_err if r/w command fails or we abort, harmless; deferred resume implementation properly protected by config, harmless; set md->disk->flags to GENHD_FL_EXT_DEVT *** needs discussion ***
16) drivers/mmc/core/core.c: mmc_resume_bus() introduction; extend wakelock flag, other
unconditonal changes *** needs discussion ***
17) drivers/mmc/core/host.c:adds pm_notifier if not flagged MMC_PM_IGNORE_PM_NOTIFY *** needs
discussion ***
18) drivers/power/power_supply_core.c: change
power_supply_changed() processing *** needs discussion ***
19) arch/arm/boot/compressed/head.S: wrap older chip IDs from
colliding with v7 *** needs discussion ***
20) arch/arm/include/asm/hardware/coresight.h: various lowlevel io
changes *** need discussion ***
21) arch/arm/include/asm/mach/mmc.h: extra stuff for
embedded_sdio_data, declares mmc_platform_data ??? *** needs discussion ***
22) arch/arm/kernel/etm.c: mass changes, no idea *** needs
discussion ***
23) arch/arm/mm/cache-l2x0.c: add sets and ways count, service
CONFIG_PL310_ERRATA_727915, two magic debug_writel *** needs discussion ***
24) arch/arm/mm/cache-v6.S: support CONFIG_CACHE_FLUSH_RANGE_LIMIT
*** needs discussion ***
25) arch/arm/mm/mmu.c: simplify early_pte_alloc() args, add
force_pages to alloc_init_pud(), more changes *** needs discussion ***
26) arch/arm/vfp/entry.S: thumb2 code added *** needs discussion *** 27) arch/arm/vfp/vfpmodule.c: add SMP code *** needs discussion *** 28) linux/amba/mmci.h: hmmm also defines stuff defined in
include/asm/mach/mmc.h, *** needs discussion ***
There's some additional code introduced in linaro-android-3.4:
drivers/input/evdev.c | 1 + include/linux/earlysuspend.h | 56 ++++ include/linux/wakelock.h | 82 +++-- kernel/power/Kconfig | 59 +++- kernel/power/Makefile | 4 + kernel/power/consoleearlysuspend.c | 78 +++++ kernel/power/earlysuspend.c | 187 +++++++++++ kernel/power/fbearlysuspend.c | 153 +++++++++ kernel/power/main.c | 13 +- kernel/power/power.h | 13 + kernel/power/process.c | 32 +- kernel/power/suspend.c | 3 + kernel/power/wakelock.c | 634 ++++++++++++++++++++++++++++++++++++ kernel/printk.c | 8 - net/Kconfig | 4 +-
drivers/input/evdev.c: change clock to CLOCK_MONOTONIC, harmless
include/linux/earlysuspend.h: protected by CONFIG_HAS_EARLYSUSPEND, harmless
include/linux/wakelock.h: improve so there is a null struct and empty APIs if CONFIG_WAKELOCK is not set, beneficial
kernel/power/Kconfig: change defaults on WAKELOCK stuff to n, add EARLYSUSPEND default y but it's depends on WAKELOCK that is default n, add WAKELOCK_STAT
kernel/power/Makefile: harmless
kernel/power/consoleearlysuspend.c: only built with CONFIG_CONSOLE_EARLYSUSPEND, harmless
kernel/power/earlysuspend.c: only built with CONFIG_EARLYSUSPEND, harmless
kernel/power/fbearlysuspend.c: only built with CONFIG_FB_EARLYSUSPEND, harmless
kernel/power/main.c: adds earlysuspend pieces but properly protected
kernel/power/power.h: adds wakelock and earlysuspend global externs properly protected
kernel/power/process.c: adds wakelock flag, prints tasks taking longer than 1s to freeze, harmless afaict
kernel/power/suspend.c: adds "on" pm state for earlysuspend, properly protected by CONFIG_EARLYSUSPEND, harmless
kernel/power/wakelock.c: only built with CONFIG_WAKELOCK, harmless
kernel/printk.c: kill printascii(), good
net/Kconfig: change NET_ACTIVITY_STATS and ANDROID_PARANOID_NETWORK defaults to n, good
So it doesn't seem to introduce any new issues and solves some of the existing ones present in Android's 3.4 androidization.
-Andy