• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LCA13: Android Kernel Upstreaming: Overview & Status
 

LCA13: Android Kernel Upstreaming: Overview & Status

on

  • 207 views

Resource: LCA13

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

Statistics

Views

Total Views
207
Views on SlideShare
207
Embed Views
0

Actions

Likes
0
Downloads
2
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