LCA13: Android Kernel Upstreaming: Overview & Status
Upcoming SlideShare
Loading in...5
×
 

LCA13: Android Kernel Upstreaming: Overview & Status

on

  • 302 views

Resource: LCA13

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

Statistics

Views

Total Views
302
Views on SlideShare
302
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

LCA13: Android Kernel Upstreaming: Overview & Status LCA13: Android Kernel Upstreaming: Overview & Status Presentation Transcript

  • Android Kernel Upstreaming: Overview & Status John Stultz john.stultz@linaro.org http://www.linaro.org March 5th 2013 Linaro 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
  • 23 Work to be done ● Graphics (Ion/Sync) ● Interactive cpufreq gov ● Netfilter changes / Paranoid networking ● Alarm-dev timerfd integration ● ETM/ETB improvements ● Android gadget/CCG out of staging ● Non-staging path for binder/logger ● Lot of small misc items
  • 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.
  • 33 Planning and Discussion Items ● Dmabuf fences and Android sync ● ION upstreaming ● Interactive cpufreq gov & Power aware scheduli ng ● ETM/ETB