LCA13: Android Kernel Upstreaming: Overview & Status

Post on 29-Nov-2014

502 views 4 download

description

Resource: LCA13 Name: Android Kernel Upstreaming: Overview & Status Date: 05-03-2013 Speaker: John Stultz

transcript

Android Kernel Upstreaming: Overview & Status

John Stultzjohn.stultz@linaro.org

http://www.linaro.org

March 5th 2013Linaro Connect Asia

(based off of my Android Builders Summit talk + updates!)

2

● Overview of the Android™ kernel patch set

● Status of what has made it upstream and what hasn't

● Why upstreaming is important● Planning & discussion items

What I'll cover

3

Overview of Android Patch Set

4

Carving up the Bugdroid

https://blueprints.launchpad.net/linux-linaro/+spec/linaro-kernel-android-upstreaming

5

Core Platform Components

https://blueprints.launchpad.net/linux-linaro/+spec/android-core-platform-upstreaming

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

https://blueprints.launchpad.net/linux-linaro/+spec/android-debugging

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

https://blueprints.launchpad.net/linux-linaro/+spec/android-graphics-upstreaming

14

Graphics Infrastructure

● ION● Sync

15

Misc Items

https://blueprints.launchpad.net/linux-linaro/+spec/android-nonesential-platform-upstreaming

16

Misc Items

● Android battery meta-driver● Input drivers & tweaks● Switch class● Timed gpio● MMC tweaks● Smaller changes all over

17

Deprecated features

18

Deprecated features

● pmem● earlysuspend● apanic● yaffs2

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

● Sync driver (as of last night!) queued for 3.10

22

In development

● FIQ Debugger● Integrated w/ KDB, Portions upstream

● Key-reset-driver● Some functionality merged in 3.9

● Low-memory-killer● Mempressure cgroup

● Ashmem unpinning functionality● Volatile ranges

● Goldfish platform support

24

Upstream Status

25

Out of tree stats (3.8)

● ~361 patches● Diffstat:

● 253 files changed, 27321 insertions(+), 511 deletions(-)

Generated with git diff -dirstat=lines,0,cumulative

17.3%: drivers/usb/gadget/

16.5%: net/netfilter/

11.5%: arch/arm/

11.1%: drivers/gpu/ion/

7.3%: drivers/input/

6.6%: include/linux/

4.9%: drivers/base/

4.0%: drivers/cpufreq/

3.2%: drivers/net/ppp/

2.6%: drivers/power/

1.5%: kernel/

1.4%: drivers/mmc/

1.3%: drivers/staging/android/

1.3%: drivers/switch/

1.2%: drivers/char/

1.0%: Documentation/

7.3%: Other

26

Generated with: https://github.com/johnstultz-work/git-plot-tools.git

27

Google isn't standing still

● Fair amount of recent development around:● ION (gpu)● Sync● Interactive cpufreq gov (cpufreq)● Android battery driver (power)● Netfilter

28

Why does upstreaming matter?

29

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

30

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– Ubuntu Phone

31

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

32

Join in!http://www.linaro.org

john.stultz@linaro.org

*Android is a trademark of Google Inc.