SlideShare a Scribd company logo
Android Upstreaming Status and Future
John Stultz, Oct 29th
2013
john.stultz@linaro.org
www.linaro.org
●
Accomplishments so far this year
●
Discussions from Linux Plumbers
●
What is still to be done
●
Next steps / Discussion
Overview
www.linaro.org
●
Mempressure events merged in 3.10 (AntonV)
– Android developers planning to move from low-memory-killer in a future release.
●
Android Sync driver in staging in 3.10 (John)
●
FAT_GET_VOLUME_ID ioctl merged in 3.11 (Bintian)
●
Suspend time logging merged in 3.11 (Zoran)
●
Keyreset functionality merged into sysrq in 3.12 (Mathieu)
●
compat_ioctl enablement for ashmem, alarmdev, sync, FAT_GET_VOLUME_ID and
others merged during 3.10-3.12 (DmitryP, John, Serban, Bintian)
– Binder support hopefully soon
●
pstore suspend debugging queued for 3.13 (Zoran)
●
wakeup_source enablement for RTC and power_supply drivers queued for 3.13 (Zoran)
– Hopefully MMC as well (Ulf)
Linaro Accomplishments so far in 2013
www.linaro.org
● ConfigFS gadget merged in 3.10 (Sebastian/Andrzej)
– Will likely replace Android Gadget eventually
● Alarmtimer support added to timerfd merged in 3.11 (Todd)
– Allowed android-battery meta-driver to move to user land
– Likely to replace /dev/alarm
● Freezer optimizations merged in 3.11 (Colin)
– Merged upstream in parallel with AOSP!
Community Accomplishments so far in 2013
www.linaro.org
●
Android Sync
●
Atomic Display Framework
●
ION
●
Binder
●
Netfilter
●
Android Gadget
Discussion from Linux Plumbers
www.linaro.org
●
Dmabuf-fences is the upstream preferred solution
●
Implicit vs explicit sync contracts
●
Seemingly agreement on allowing for optional explicit sync
arguments in the APIs
– Likely trying to implement Android's Sync api on top of
kernel-internal dmabuf-fences
●
Next steps:
– Maarten started looking at this, but may need assistance
Android Sync
www.linaro.org
●
Simplified KMS-like framework.
●
Sort of an experiment to see what an ideal framework for
Android would look like
●
Similar to upstream atomic mode-setting / nuclear pageflip
work
●
Integrates Android sync points in the API
●
Presented as fodder for how KMS could be extended
●
Next steps:
– Continue pushing community and Android developers to
collaborate on this.
– Hopefully avoid forking display frameworks!
Atomic Display Framework
www.linaro.org
●
Discussed ION interface issues
●
Upstream preferred solution is post-attach delayed allocation
– Android developers have issues with this approach
●
Likely to continue having separate interfaces, but hopefully
will share underlying logic.
●
Next steps:
– Push ION into staging
– Try to integrate ION's “heap” allocators in the dmabuf
post-attach delayed allocation approach.
ION
www.linaro.org
●
Greg KH earlier claimed he would get libbinder running over
KDBUS, allowing in-kernel binder driver to be dropped
●
This is apparently quite hard, as KDBUS has very different
semantics then binder.
●
Not looking very likely a way forward, but Greg wants us to
check back in a year.
●
Next steps:
– None, at the moment
Binder
www.linaro.org
●
Got background on Android netfilter extensions:
– xt_quota2, xt_idletimer and xt_qtaguid
●
Upstream developers suggest using NFQUEUE instead of
xt_qtaguid
●
Next steps:
– xt_quota2 likely to be done w/ nfacct
– xt_idletimer changes look possible to merge
– NFQUEUE viability research on-going
Netfilter
www.linaro.org
●
ConfigFS driver merged in 3.10 likely to eventually replace
Android Gadget
●
ConfigFS still missing some functionality:
– Needs FunctionFS support
– Also upstream needs MTP, Android Accessory and
Android Audio function support
●
Next steps:
– Find hands to work on this
Android Gadget
www.linaro.org
●
MMC improvements (Ulf)
●
ION moving to staging & making it arch neutral (Jesse, Sumit, John)
●
Netfilter changes (Mathieu)
●
Volatile Ranges work to upstream part of ashmem (John)
●
Binder compat_ioctl (Serban)
Current work in progress
www.linaro.org
●
Lots of graphics work
– ION, Sync, ADF
– Want to avoid a forked graphics infrastructure
●
ETM/ETB
●
FIQ Debugger functionality in KDB (stalled)
●
ARM improvements (ro kernel text, console flush, etc)
●
Android Gadget driver
– Enable FunctionFS in ConfigFS gadget
– Support MTP, Android Accessory, Android Audio gadget functions
●
Interactive cpufreq gov
– Hopefully replaced by power-aware scheduling
●
Bluetooth, wireless, other networking changes
●
Moving items out of staging (binder, ashmem, logger, sync, etc)
What is left?
LCU13: Android upstreaming - status and future
net/netfilter/xt_qtaguid.c | 3012 ++++++++++++++++++++++++++
drivers/usb/gadget/android.c | 1517 +++++++++++++
drivers/gpu/ion/ion.c | 1495 ++++++++++++
arch/arm/common/fiq_debugger.c | 1376 +++++++++++
drivers/usb/gadget/f_mtp.c | 1274 ++++++++++
drivers/cpufreq/cpufreq_interactive.c | 1247 ++++++++++
drivers/usb/gadget/f_accessory.c | 1180 ++++++++++
drivers/usb/gadget/f_audio_source.c | 828 +++++++
arch/arm/kernel/etm.c | 680 ++++-
net/netfilter/xt_qtaguid_print.c | 566 ++++
drivers/gpu/ion/ion_system_heap.c | 450 +++
drivers/net/ppp/pppolac.c | 449 +++
drivers/input/misc/gpio_matrix.c | 441 +++
drivers/net/ppp/pppopns.c | 428 +++
drivers/input/misc/keychord.c | 391 +++
drivers/input/misc/gpio_input.c | 390 +++
net/netfilter/xt_quota2.c | 385 +++
include/linux/ion.h | 376 +++
drivers/gpu/ion/ion_priv.h | 359 +++
net/netfilter/xt_qtaguid_internal.h | 352 +++
drivers/char/dcc_tty.c | 326 ++
drivers/gpu/ion/ion_heap.c | 320 ++
drivers/input/keyreset.c | 239 ++
drivers/input/misc/gpio_event.c | 228 +
drivers/gpu/ion/ion_chunk_heap.c | 213 +
drivers/gpu/ion/ion_cma_heap.c | 205 +
drivers/gpu/ion/ion_page_pool.c | 200 +
drivers/input/misc/gpio_axis.c | 192 +
drivers/gpu/ion/ion_carveout_heap.c | 187 +
kernel/trace/trace_output.c | 182 +
drivers/switch/switch_class.c | 174 +
drivers/usb/phy/otg-wakelock.c | 173 +
drivers/switch/switch_gpio.c | 172 +
include/linux/freezer.h | 171 +
include/linux/gpio_event.h | 170 +
arch/arm/mm/rodata.c | 159 +
...
Key:
Upstreaming in progress
Upstream since 3.10
diffstat of android-3.10
sorted by delta
www.linaro.org
● Resource issues
– Plenty of work, not too many full time hands
– Need to leverage the graphics team
● Next areas of focus?
– ARM changes
● Tend to collide and cause frequent pain
● Would be good to resolve
– Android Gadget (low hanging fruit)
– FIQ Debugger (currently stalled)
– ????
Discussion
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
How to join: http://www.linaro.org/about/how-to-join
Linaro members: www.linaro.org/members
connect.linaro.org

More Related Content

PDF
Kernel Recipes 2014 - The Linux graphics stack and Nouveau driver
PDF
Woden 2: Developing a modern 3D graphics engine in Smalltalk
PDF
LAS16-209: Finished and Upcoming Projects in LMG
PDF
LCA13: Android Kernel Upstreaming: Overview & Status
PDF
Linaro and Android Kernel
PDF
Android Things Internals
PDF
Android Things: Android for IoT
PDF
Android Things Internals
Kernel Recipes 2014 - The Linux graphics stack and Nouveau driver
Woden 2: Developing a modern 3D graphics engine in Smalltalk
LAS16-209: Finished and Upcoming Projects in LMG
LCA13: Android Kernel Upstreaming: Overview & Status
Linaro and Android Kernel
Android Things Internals
Android Things: Android for IoT
Android Things Internals

Similar to LCU13: Android upstreaming - status and future (20)

PDF
LCE13: Android Graphics Upstreaming
PDF
LMG Lightning Talks - SFO17-205
PDF
HKG15-100: What is Linaro working on - core development lightning talks
PDF
HKG15-104: What is Linaro working on - core development lightning talks
PDF
Android Things : Building Embedded Devices
PDF
Android Internals
PDF
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
PDF
Leveraging Android's Linux Heritage at AnDevCon IV
PDF
Headless Android
PDF
Android Hacks, Variants, Tricks and Resources ESC SV 2012
PDF
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
PDF
IoTivity: From Devices to the Cloud
PDF
Develop Community-based Android Distribution and Upstreaming Experience
PDF
George Grey Welcome Keynote - BUD17-100K1
PDF
BKK16-105 HALs for LITE
PDF
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
PDF
Leveraging Android's Linux Heritage
PDF
Davide Ricci - Continuos compliance @ Linaro.pdf
PDF
Is Android the New Embedded Linux? at AnDevCon IV
PDF
Leveraging Android's Linux Heritage at AnDevCon V
LCE13: Android Graphics Upstreaming
LMG Lightning Talks - SFO17-205
HKG15-100: What is Linaro working on - core development lightning talks
HKG15-104: What is Linaro working on - core development lightning talks
Android Things : Building Embedded Devices
Android Internals
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
Leveraging Android's Linux Heritage at AnDevCon IV
Headless Android
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
IoTivity: From Devices to the Cloud
Develop Community-based Android Distribution and Upstreaming Experience
George Grey Welcome Keynote - BUD17-100K1
BKK16-105 HALs for LITE
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
Leveraging Android's Linux Heritage
Davide Ricci - Continuos compliance @ Linaro.pdf
Is Android the New Embedded Linux? at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon V
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
Ad

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Big Data Technologies - Introduction.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PDF
Approach and Philosophy of On baking technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
cuic standard and advanced reporting.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Machine Learning_overview_presentation.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Empathic Computing: Creating Shared Understanding
sap open course for s4hana steps from ECC to s4
Big Data Technologies - Introduction.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Approach and Philosophy of On baking technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Machine learning based COVID-19 study performance prediction
cuic standard and advanced reporting.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
Machine Learning_overview_presentation.pptx
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Empathic Computing: Creating Shared Understanding

LCU13: Android upstreaming - status and future

  • 1. Android Upstreaming Status and Future John Stultz, Oct 29th 2013 john.stultz@linaro.org
  • 2. www.linaro.org ● Accomplishments so far this year ● Discussions from Linux Plumbers ● What is still to be done ● Next steps / Discussion Overview
  • 3. www.linaro.org ● Mempressure events merged in 3.10 (AntonV) – Android developers planning to move from low-memory-killer in a future release. ● Android Sync driver in staging in 3.10 (John) ● FAT_GET_VOLUME_ID ioctl merged in 3.11 (Bintian) ● Suspend time logging merged in 3.11 (Zoran) ● Keyreset functionality merged into sysrq in 3.12 (Mathieu) ● compat_ioctl enablement for ashmem, alarmdev, sync, FAT_GET_VOLUME_ID and others merged during 3.10-3.12 (DmitryP, John, Serban, Bintian) – Binder support hopefully soon ● pstore suspend debugging queued for 3.13 (Zoran) ● wakeup_source enablement for RTC and power_supply drivers queued for 3.13 (Zoran) – Hopefully MMC as well (Ulf) Linaro Accomplishments so far in 2013
  • 4. www.linaro.org ● ConfigFS gadget merged in 3.10 (Sebastian/Andrzej) – Will likely replace Android Gadget eventually ● Alarmtimer support added to timerfd merged in 3.11 (Todd) – Allowed android-battery meta-driver to move to user land – Likely to replace /dev/alarm ● Freezer optimizations merged in 3.11 (Colin) – Merged upstream in parallel with AOSP! Community Accomplishments so far in 2013
  • 5. www.linaro.org ● Android Sync ● Atomic Display Framework ● ION ● Binder ● Netfilter ● Android Gadget Discussion from Linux Plumbers
  • 6. www.linaro.org ● Dmabuf-fences is the upstream preferred solution ● Implicit vs explicit sync contracts ● Seemingly agreement on allowing for optional explicit sync arguments in the APIs – Likely trying to implement Android's Sync api on top of kernel-internal dmabuf-fences ● Next steps: – Maarten started looking at this, but may need assistance Android Sync
  • 7. www.linaro.org ● Simplified KMS-like framework. ● Sort of an experiment to see what an ideal framework for Android would look like ● Similar to upstream atomic mode-setting / nuclear pageflip work ● Integrates Android sync points in the API ● Presented as fodder for how KMS could be extended ● Next steps: – Continue pushing community and Android developers to collaborate on this. – Hopefully avoid forking display frameworks! Atomic Display Framework
  • 8. www.linaro.org ● Discussed ION interface issues ● Upstream preferred solution is post-attach delayed allocation – Android developers have issues with this approach ● Likely to continue having separate interfaces, but hopefully will share underlying logic. ● Next steps: – Push ION into staging – Try to integrate ION's “heap” allocators in the dmabuf post-attach delayed allocation approach. ION
  • 9. www.linaro.org ● Greg KH earlier claimed he would get libbinder running over KDBUS, allowing in-kernel binder driver to be dropped ● This is apparently quite hard, as KDBUS has very different semantics then binder. ● Not looking very likely a way forward, but Greg wants us to check back in a year. ● Next steps: – None, at the moment Binder
  • 10. www.linaro.org ● Got background on Android netfilter extensions: – xt_quota2, xt_idletimer and xt_qtaguid ● Upstream developers suggest using NFQUEUE instead of xt_qtaguid ● Next steps: – xt_quota2 likely to be done w/ nfacct – xt_idletimer changes look possible to merge – NFQUEUE viability research on-going Netfilter
  • 11. www.linaro.org ● ConfigFS driver merged in 3.10 likely to eventually replace Android Gadget ● ConfigFS still missing some functionality: – Needs FunctionFS support – Also upstream needs MTP, Android Accessory and Android Audio function support ● Next steps: – Find hands to work on this Android Gadget
  • 12. www.linaro.org ● MMC improvements (Ulf) ● ION moving to staging & making it arch neutral (Jesse, Sumit, John) ● Netfilter changes (Mathieu) ● Volatile Ranges work to upstream part of ashmem (John) ● Binder compat_ioctl (Serban) Current work in progress
  • 13. www.linaro.org ● Lots of graphics work – ION, Sync, ADF – Want to avoid a forked graphics infrastructure ● ETM/ETB ● FIQ Debugger functionality in KDB (stalled) ● ARM improvements (ro kernel text, console flush, etc) ● Android Gadget driver – Enable FunctionFS in ConfigFS gadget – Support MTP, Android Accessory, Android Audio gadget functions ● Interactive cpufreq gov – Hopefully replaced by power-aware scheduling ● Bluetooth, wireless, other networking changes ● Moving items out of staging (binder, ashmem, logger, sync, etc) What is left?
  • 15. net/netfilter/xt_qtaguid.c | 3012 ++++++++++++++++++++++++++ drivers/usb/gadget/android.c | 1517 +++++++++++++ drivers/gpu/ion/ion.c | 1495 ++++++++++++ arch/arm/common/fiq_debugger.c | 1376 +++++++++++ drivers/usb/gadget/f_mtp.c | 1274 ++++++++++ drivers/cpufreq/cpufreq_interactive.c | 1247 ++++++++++ drivers/usb/gadget/f_accessory.c | 1180 ++++++++++ drivers/usb/gadget/f_audio_source.c | 828 +++++++ arch/arm/kernel/etm.c | 680 ++++- net/netfilter/xt_qtaguid_print.c | 566 ++++ drivers/gpu/ion/ion_system_heap.c | 450 +++ drivers/net/ppp/pppolac.c | 449 +++ drivers/input/misc/gpio_matrix.c | 441 +++ drivers/net/ppp/pppopns.c | 428 +++ drivers/input/misc/keychord.c | 391 +++ drivers/input/misc/gpio_input.c | 390 +++ net/netfilter/xt_quota2.c | 385 +++ include/linux/ion.h | 376 +++ drivers/gpu/ion/ion_priv.h | 359 +++ net/netfilter/xt_qtaguid_internal.h | 352 +++ drivers/char/dcc_tty.c | 326 ++ drivers/gpu/ion/ion_heap.c | 320 ++ drivers/input/keyreset.c | 239 ++ drivers/input/misc/gpio_event.c | 228 + drivers/gpu/ion/ion_chunk_heap.c | 213 + drivers/gpu/ion/ion_cma_heap.c | 205 + drivers/gpu/ion/ion_page_pool.c | 200 + drivers/input/misc/gpio_axis.c | 192 + drivers/gpu/ion/ion_carveout_heap.c | 187 + kernel/trace/trace_output.c | 182 + drivers/switch/switch_class.c | 174 + drivers/usb/phy/otg-wakelock.c | 173 + drivers/switch/switch_gpio.c | 172 + include/linux/freezer.h | 171 + include/linux/gpio_event.h | 170 + arch/arm/mm/rodata.c | 159 + ... Key: Upstreaming in progress Upstream since 3.10 diffstat of android-3.10 sorted by delta
  • 16. www.linaro.org ● Resource issues – Plenty of work, not too many full time hands – Need to leverage the graphics team ● Next areas of focus? – ARM changes ● Tend to collide and cause frequent pain ● Would be good to resolve – Android Gadget (low hanging fruit) – FIQ Debugger (currently stalled) – ???? Discussion
  • 17. More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ How to join: http://www.linaro.org/about/how-to-join Linaro members: www.linaro.org/members connect.linaro.org