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;a=shortlog;h=refs/heads/linaro-android-3.4
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

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106 - http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to