android kernel upstreaming: overview & status27 dropping bcmhd & yaffs2 diffstat: 349 files changed,...
TRANSCRIPT
-
Android Kernel Upstreaming: Overview & Status
John [email protected]
http://www.linaro.org
Feb 18th 2013Android Builders Summit
mailto:[email protected]://www.linaro.org/
-
2
● Overview of the Android™ kernel patch set● Status of what has made it upstream and what
hasn't● Why upstreaming is important
What I'll cover
-
3
Overview of Android Patch Set
-
4
Carving up the Bugdroid
-
5
Core Platform Components
-
6
● Binder● Ashmem● Logger● Monotonic event timestamps
Core Platform Components
-
7
Power/Performance Improvements
-
8
Power/Performance Improvements
● Wakelock infrastructure● Alarm-dev● low-memory-killer● Interactive cpufreq governor
-
9
Platform Debugging Features
-
10
Platform Debugging Features
● Android Gadget Driver (for ADB)● FIQ Debugger● ram_console/persistent_ram● Keyreset driver● ETM/ETB improvements● Goldfish emulator support
-
11
Networking Changes
-
12
Networking Changes
● Paranoid networking framework● Netfilter changes● Bluetooth improvements● bcmhd driver
-
13
Graphics Infrastructure
-
14
Graphics Infrastructure
● ION● Sync
-
15
Misc Items
-
16
Misc Items
● Android battery meta-driver● Input drivers & tweaks● Switch class● Timed gpio● MMC tweaks● Smaller changes all over
-
17
Deprecated (mostly) features
-
18
Deprecated (mostly) features
● pmem● earlysuspend● apanic● yaffs2 (sort of)
-
19
Upstream Status
-
20
Already upstream
● Wakelocks● Monotonic event stamps● Ram_console/persistent_memory
● via pstore/ramoops● Switch class
● via ExtConn driver
-
21
In the staging directory
● Binder● Ashmem● Logger● Low-memory-killer● Alarm-dev● Android-gadget-driver (as CCG driver)● Timed GPIO
-
22
In development
● FIQ Debugger● Integrated w/ KDB, Portions upstream
● Key-reset-driver● Some functionality queued for 3.9
● Low-memory-killer● Mempressure cgroup
● Ashmem unpinning functionality● Volatile ranges
● Goldfish platform support
-
23
Work to be done
● Graphics (Ion/Sync)● Interactive cpufreq gov● Netfilter changes / Paranoid networking● Alarm-dev timerfd integration● ETM/ETB improvements● Non-staging path for binder/logger● Lot of small misc items
-
24
Thank you!Andy Green
Anton Vorontsov
Arve Hjønnevåg
Axel Lin
Bjorn Bringert
Chanwoo Choi
Christopher Lais
Colin Cross
Corentin Chary
Dan Carpenter
David Howells
David Rientjes
Devendra Naga
Dima Zavin
Emil Goode
Greg Dietsche
Greg Kroah-Hartman
H Hartley Sweeten
Hugh Dickins
Jesper Juhl
Joe Perches
Johannes Thumshirn
John Stultz
JP Abgrall
Justin P. Mattock
Kim, Milo
Konstantin Khlebnikov
Marco Navarra
Mark Brown
Masanari Iida
Mike Lockwood
MyungJoo Ham
Nick Kralevich
Paul E. McKenney
Praneeth Kumar Bajjuri
Rabin Vincent
Rafael J. Wysocki
Randy Dunlap
Rebecca Schultz
Robert Love
Sachin Kamat
San Mehat
Sherwin Soltani
Shuah Khan
Stephen Boyd
Thomas Meyer
Tim Bird
Tracey Dent
Zhengwang Ruan
-
25
Upstream Status
-
26
59.2%: drivers/net/wireless/bcmdhd/
11.8%: fs/yaffs2/
4.3%: drivers/usb/gadget/
3.5%: net/netfilter/
2.7%: arch/arm/
2.3%: drivers/gpu/ion/
2.1%: drivers/input/
1.8%: include/linux/
1.6%: drivers/base/
1.5%: drivers/staging/android/
1.1%: drivers/power/
1.0%: kernel/
7.1%:
Out of tree stats
● ~568 patches● Diffstat:
● 500 files changed, 127518 insertions(+), 2179 deletions(-)
Generated with git diffstat -dirstat=lines,0,cumulative
-
27
Dropping bcmhd & yaffs2
● Diffstat:● 349 files changed, 35358 insertions(+), 2179 deletions(-)
15.0% drivers/usb/gadget/ 12.2% net/netfilter/ 9.5% arch/arm/ 8.2% drivers/gpu/ion/ 6.3% include/linux/ 5.7% drivers/base/ 5.2% drivers/staging/android/ 4.6% drivers/input/misc/ 3.8% drivers/power/ 2.9% drivers/cpufreq/ 2.7% drivers/misc/ 2.3% drivers/net/ppp/ 2.2% drivers/cpuidle/ 2.1% kernel/power/ 1.8% drivers/input/touchscreen/ 1.7% Documentation/ 1.6% drivers/hid/ 1.0% samples/uhid/ 1.0% drivers/mmc/ 10.2%
Generated with git diffstat -dirstat=lines,0,cumulative
-
28
-
29
Google isn't standing still
● Fair amount of recent development around:● Bcmhd (net)● ION (gpu)● Sync● Interactive cpufreq gov (cpufreq)● Android battery driver (power)● Netfilter
-
30
Why does upstreaming matter?
-
31
Code forks aren't bad
● The Android patch set is in effect a fork of the Linux kernel
● Kernel code forks are common, and actually good.● PREEMPT_RT● 4g/4g split● Most filesystems
● GPL allows for eventual re-merging, or at least learning from the fork
-
32
Community forks are less positive
● ARM SoCs almost exclusively focused on Android● Very large community of developers ● Writing drivers with out-of-tree dependencies
● Android kernel became standard for ARM BSPs● Many non-android platforms ship with Android
kernel– WebOS– FirefoxOS
-
33
Increasing collaboration
● Getting the functionality upstream allows for more collaboration
● If you're an Android system developer, the upstream kernel community is your community● It's like a family, for good and bad
-
34
Join in!http://www.linaro.org
*Android is a trademark of Google Inc.
http://www.linaro.org/
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34