SlideShare a Scribd company logo
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

More Related Content

PDF
Android Custom Kernel/ROM design
PDF
Workshop su Android Kernel Hacking
PDF
Android Boot Time Optimization
PDF
Kernel Recipes 2015 - Kernel dump analysis
PPT
Learning AOSP - Android Booting Process
PPT
Android booting sequece and setup and debugging
PDF
Kdump and the kernel crash dump analysis
Android Custom Kernel/ROM design
Workshop su Android Kernel Hacking
Android Boot Time Optimization
Kernel Recipes 2015 - Kernel dump analysis
Learning AOSP - Android Booting Process
Android booting sequece and setup and debugging
Kdump and the kernel crash dump analysis

What's hot (20)

PPTX
U-Boot presentation 2013
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PPT
Linux Crash Dump Capture and Analysis
PDF
Building
PPT
Embedding Linux On The Encore Simputer
PDF
Jagan Teki - U-boot from scratch
PPT
U Boot or Universal Bootloader
PDF
Kernel_Crash_Dump_Analysis
PDF
Kernel Recipes 2015 - Hardened kernels for everyone
PDF
Kernel Configuration and Compilation
PDF
A Journey to Boot Linux on Raspberry Pi
PDF
Introduction to Modern U-Boot
PDF
Linux Kernel Debugging Essentials workshop
PPTX
Linux Initialization Process (2)
PDF
Linux Kernel Platform Development: Challenges and Insights
ODP
Linux Kernel Crashdump
PDF
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
PDF
Init of Android
PDF
Getting started with LinuxBoot Firmware on AArch64 Server
PDF
Let's trace Linux Lernel with KGDB @ COSCUP 2021
U-Boot presentation 2013
Bootstrap process of u boot (NDS32 RISC CPU)
Linux Crash Dump Capture and Analysis
Building
Embedding Linux On The Encore Simputer
Jagan Teki - U-boot from scratch
U Boot or Universal Bootloader
Kernel_Crash_Dump_Analysis
Kernel Recipes 2015 - Hardened kernels for everyone
Kernel Configuration and Compilation
A Journey to Boot Linux on Raspberry Pi
Introduction to Modern U-Boot
Linux Kernel Debugging Essentials workshop
Linux Initialization Process (2)
Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Crashdump
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Init of Android
Getting started with LinuxBoot Firmware on AArch64 Server
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Ad

Similar to LCA13: Android Kernel Upstreaming: Overview & Status (20)

PDF
LCU13: Android upstreaming - status and future
PDF
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
PDF
ELC-E 2016 Neil Armstrong - No, it's never too late to upstream your legacy l...
PDF
Android Treble: Blessing or Trouble?
PDF
Develop Community-based Android Distribution and Upstreaming Experience
PDF
Davide Ricci - Continuos compliance @ Linaro.pdf
PDF
Kernel Recipes 2019 - Driving the industry toward upstream first
PDF
Linaro and Android Kernel
PDF
SFO15-210: Kernel Mainline Status of Mobile Chipsets
PDF
BUD17-TR02: Upstreaming 101
PDF
Upstreaming 101 - SFO17-TR02
PDF
Accelerated Android Development with Linaro
PDF
Swimming upstream
PDF
Swimming upstream
PDF
Extending Android's Platform Toolsuite
PDF
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
PPTX
Software update for embedded systems
PDF
LAS16-209: Finished and Upcoming Projects in LMG
PDF
LMG Lightning Talks - SFO17-205
PDF
Kernel Recipes 2016 - The kernel report
LCU13: Android upstreaming - status and future
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
ELC-E 2016 Neil Armstrong - No, it's never too late to upstream your legacy l...
Android Treble: Blessing or Trouble?
Develop Community-based Android Distribution and Upstreaming Experience
Davide Ricci - Continuos compliance @ Linaro.pdf
Kernel Recipes 2019 - Driving the industry toward upstream first
Linaro and Android Kernel
SFO15-210: Kernel Mainline Status of Mobile Chipsets
BUD17-TR02: Upstreaming 101
Upstreaming 101 - SFO17-TR02
Accelerated Android Development with Linaro
Swimming upstream
Swimming upstream
Extending Android's Platform Toolsuite
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
Software update for embedded systems
LAS16-209: Finished and Upcoming Projects in LMG
LMG Lightning Talks - SFO17-205
Kernel Recipes 2016 - The kernel report
Ad

More from Linaro (20)

PDF
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
PDF
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
PDF
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
PDF
Bud17 113: distribution ci using qemu and open qa
PDF
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
PDF
HPC network stack on ARM - Linaro HPC Workshop 2018
PDF
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
PDF
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
PDF
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
PDF
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-100K1 - George Grey: Opening Keynote
PDF
HKG18-318 - OpenAMP Workshop
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
PDF
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
PDF
HKG18-TR08 - Upstreaming SVE in QEMU
PDF
HKG18-113- Secure Data Path work with i.MX8M
PPTX
HKG18-120 - Devicetree Schema Documentation and Validation
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Bud17 113: distribution ci using qemu and open qa
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-100K1 - George Grey: Opening Keynote
HKG18-318 - OpenAMP Workshop
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-113- Secure Data Path work with i.MX8M
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-223 - Trusted FirmwareM: Trusted boot

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
cuic standard and advanced reporting.pdf
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Mobile App Security Testing_ A Comprehensive Guide.pdf
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Programs and apps: productivity, graphics, security and other tools
cuic standard and advanced reporting.pdf
Spectroscopy.pptx food analysis technology
Understanding_Digital_Forensics_Presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
sap open course for s4hana steps from ECC to s4
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MIND Revenue Release Quarter 2 2025 Press Release

LCA13: Android Kernel Upstreaming: Overview & Status