Presented by
Date
Event
ART II
New Member Assimilation GuideSerban Constantinescu
BKK16-306 March 9, 2016
Linaro Connect BKK16
Who are we?
● LMG
○ Linaro Android Runtime Team (ART)
● 7 engineers @ ARM
● 2 engineers @ Spreadtrum
What do we do?
● Linaro ART Tip (Upstream)
○ Focus on improving ART for the next Android release
● Linaro ART Stable (Linaro)
○ Focus on improving ART for the current Android release
Development Cycle
Task
Selection
Development
Internal
Code Review
Upstream
Code Review
Testing
Benchmarking
Development Cycle
Jira
C++,
ASM, Java
Internal
Gerrit
Upstream
Gerrit
Jenkins
Jenkins
& Lava
Task Selection
Task Selection
● Jira component
○ ART-Tip, ART-Stable within the LMG project
● Jira labels
○ For classifying the ART subsystems
● Fix version
○ For identifying our current focus
● Kanban
○ With daily scrum meetings (Scrumban)
○ Works well when working on fast-paced upstream projects!
Kanban
Todo In Development Review Done
Development
Cycle
Kanban
Todo In Development Review Done
Increasing
Priority
Development
Cycle
Kanban
Development
Development
● Take a look at Scott Wakeling’s BKK16-302
● Develop
○ Google’s coding style (take a look at the surrounding code)
○ Simple is better!
● Test
○ Gtests, Java tests, Checker tests
● Benchmark
○ ART-testing framework (write a new benchmark)
● Questions & guidance
○ #linaro-art IRC
Internal Code Review
Internal Code Review
● 2 Gerrit instances
○ Public code review (ART-Testing patches)
○ Private code review (ART patches)
● All ART patches ready for internal review
○ Should pass: mma test-art-host && mma test-art-target
● All ART patches ready for upstream review
○ +2 from Linaro ART Leads!
○ +1 from Linaro ART!
○ +1 from Linaro Automation?!
○ Have replies to all comments
Testing
Working with Upstream?
Working with Upstream?
Testing
● Thanks Daniel, Milosz, Vishal and automation@linaro.org!
● Tests types
○ Run on every Gerrit patch submission
○ Run on every tree update (every 6hrs)
● Build monitors
○ Linaro ART Tip
○ Linaro ART Stable
● Every test
○ Has a short description
○ Stores useful logs and pinned-manifest.xml
Test: ARTHostTest
● Description
○ mma test-art-host
○ gtests, java tests, checker tests
○ Builds on host, runs on host
○ Generates Gtests results
● Trigger
○ Every patch submission
○ Every tree update
● When should be run?
○ On every patch submitted for review (automatically triggered)
Test: ARTTargetTest
● Description
○ mma test-art-target for ARM and ARM64
○ gtests, java tests, checker tests
○ Builds on host, runs on target
○ Tests run in a chroot like environment
● Trigger
○ Every patch submission
○ Every tree update
● When should be run?
○ On every patch submitted for review (automatically triggered)
Test: ARTBootImageMeasurements
● Description
○ Builds boot.oat using dex2oat for all the ART targets
○ Builds on host, runs on host
○ Generates compile time and size plots
● Trigger
○ Every tree update
○ Topic trigger
repo upload art/ --dest=master/IncludeARTBootImageMeasurements
● When should be run?
○ Concerned about compile time and size
Test: ARTCodeCoverage
● Description
○ Builds boot.oat using dex2oat for all the ART targets
○ Runs the host gtest
○ Builds on host, runs on host
○ Generates code coverage reports
● Trigger
○ Every tree update
○ Topic trigger
repo upload art/ --dest=master/IncludeARTCodeCoverage
● When should be run?
○ Concerned about code paths exercised
Test: ARTBootToGUI-aosp_arm64
● Description
○ Builds the aosp_arm64 target and runs it in the emulator
○ Builds on host, runs on host
○ Generates build and boot time plots
● Trigger
○ Every tree update
○ Topic trigger
repo upload art/ --dest=master/IncludeBootToGUI
● When should be run?
○ Concerned about booting to GUI
How to debug a test failure?
● Look at the test trigger
○ Tree update or patch trigger?
● Take a look at
○ Test status
○ Parsed console output
○ The build logs
● Run the tests locally
○ Grab the pinned-manifest.xml
○ Run the test scripts locally (WIP)
Example: ARTTargetTest Failure
● Test status: 145-alloc-tracking-stress failed
● Trigger type: Tree Update
● Parsed console output
test-art-target-run-test-default failed (ARM/ARM64)
test-art-target-run-test-optimizing failed (ARM/ARM64)
● Build logs (only need to take a look at default and optimizing logs)
/home/buildslave/srv/linaro-art-tip-build-ARTTargetTest/android/art/test/145-alloc-tracking-stress: FAILED!
#################### info
# Regression test for b/18661622
#################### diffs
--- expected.txt 2016-03-02 10:00:23.446375718 +0000
+++ output.txt 2016-03-02 12:15:51.386021604 +0000
@@ -1 +1 @@
-Finishing
+Aborted
####################
Example: ARTTargetTest Failure
● What next?
○ Grab the pinned-manifest.xml
○ Reproduce the failure locally!
○ Fix the failure (see more info in Scott Wakeling’s BKK16-302)
Benchmarking
Benchmarking
● Thanks Daniel, Milosz, Vishal and automation@linaro.org!
● Jenkins & LAVA
○ Benchmarking on Nexus 9 (Nexus 5x soon)
● Runs on every patch submitted for review and every tree update
● ART Reports - sent by email
○ Every patch (posted to Gerrit), week, month
● ART Graphs
● Using ART-testing as a workload
○ Performance, compile time and size
ART Reports
ART Graphs
Benchmark: Nexus9-MicroBenchmarks
● Description
○ Jenkins builds a Nexus 9 image and sends it over to Lava
○ LAVA runs the benchmarks for ARM and ARM64
○ LAVA stores the results in the database and sends reports
● Trigger
○ Every patch submission
○ Every tree update
● When should be run?
○ On every patch submitted for review (automatically triggered)
Example: Nexus9-MicroBenchmarks Run
● Gerrit Patch Jenkins build System Image ART Report
Future Work on Testing & Benchmarking
● Testing
○ More stable tests!
○ Ability to run Jenkins scripts locally
○ More tests - Clang sanitizers, dex fuzzing, Valgrind tests, etc.
● Benchmarking
○ More devices - Nexus 5x, 6p, future devices
○ Compilation time and sizes for various apks
○ Benchmark profiles
Upstream Code Review
Upstream Code Review
● Always use two Android trees!
○ A Linaro tree - for internal review
○ An AOSP tree - for external review
● All patches submitted upstream should
○ Have a +2 in the internal review
○ Small fixes do not need to be re-reviewed internally
○ Reworks and new features need to be re-reviewed internally!
○ Have Linaro ART Leads added as reviewers upstream
Thanks!

More Related Content

PDF
BKK16-203 Irq prediction or how to better estimate idle time
PDF
BUD17-TR02: Upstreaming 101
PDF
BKK16-411 Devicetree Specification
PDF
BUD17-300: Journey of a packet
PDF
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
PDF
BKK16-207 VLANd in LAVA
PDF
BKK16-106 ODP Project Update
PDF
Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...
BKK16-203 Irq prediction or how to better estimate idle time
BUD17-TR02: Upstreaming 101
BKK16-411 Devicetree Specification
BUD17-300: Journey of a packet
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
BKK16-207 VLANd in LAVA
BKK16-106 ODP Project Update
Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...

What's hot (20)

PDF
BKK16-102 Creating new workload for Workload Automation & using WA with LAVA
PDF
LAS16-TR02: Upstreaming 101
PDF
HKG15-300: Art's Quick Compiler: An unofficial overview
PDF
BKK16-111 Tunables: The Future of Platform Optimization Selection in glibc
PDF
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
PDF
LAS16-207: Bus scaling QoS
PDF
kpatch.kgraft
PDF
LAS16-507: LXC support in LAVA
PDF
BKK16-210 Migrating to the new dispatcher
PDF
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
PDF
Introduction to IoT.JS
PDF
BKK16-215 kernelci.org: beyond boot testing
PDF
Las16 309 - lua jit arm64 port - status
PDF
BKK16-307 LHG OE Initiative
PDF
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
PDF
BKK16-506 PMWG Farm
PDF
LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
PDF
Future Science on Future OpenStack
PDF
Moving from CellsV1 to CellsV2 at CERN
PDF
OVN: Scaleable Virtual Networking for Open vSwitch
BKK16-102 Creating new workload for Workload Automation & using WA with LAVA
LAS16-TR02: Upstreaming 101
HKG15-300: Art's Quick Compiler: An unofficial overview
BKK16-111 Tunables: The Future of Platform Optimization Selection in glibc
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LAS16-207: Bus scaling QoS
kpatch.kgraft
LAS16-507: LXC support in LAVA
BKK16-210 Migrating to the new dispatcher
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
Introduction to IoT.JS
BKK16-215 kernelci.org: beyond boot testing
Las16 309 - lua jit arm64 port - status
BKK16-307 LHG OE Initiative
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-506 PMWG Farm
LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
Future Science on Future OpenStack
Moving from CellsV1 to CellsV2 at CERN
OVN: Scaleable Virtual Networking for Open vSwitch
Ad

Similar to BKK16-306 ART ii (20)

PDF
BKK16-213 Where's the Hardware?
PDF
LCE13: Test and Validation Summit: The future of testing at Linaro
PDF
LCA13: Android Kernel Upstreaming: Overview & Status
PDF
LCA13: LAVA and CI Component Review
PDF
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (II)
PDF
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
PDF
Davide Ricci - Continuos compliance @ Linaro.pdf
PDF
Update Strategies for the Edge, by Kat Cosgrove
PDF
LMG Lightning Talks - SFO17-205
PDF
Continuous mobile automation in build pipeline
PPTX
Build Automation in Android
PDF
Droidcon2013 facebook stewart
PDF
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
PDF
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
PDF
Q1.12: Unorthodox Connect Engineering
PDF
20141111_SOS3_Gallo
PDF
TSC BoF: OSS Toolchain Discussion - SFO17-409
PDF
LAS16-201: ART JIT in Android N
PDF
LCA13: Android Infrastructure Automation Improvements
PPTX
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
BKK16-213 Where's the Hardware?
LCE13: Test and Validation Summit: The future of testing at Linaro
LCA13: Android Kernel Upstreaming: Overview & Status
LCA13: LAVA and CI Component Review
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (II)
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
Davide Ricci - Continuos compliance @ Linaro.pdf
Update Strategies for the Edge, by Kat Cosgrove
LMG Lightning Talks - SFO17-205
Continuous mobile automation in build pipeline
Build Automation in Android
Droidcon2013 facebook stewart
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
Q1.12: Unorthodox Connect Engineering
20141111_SOS3_Gallo
TSC BoF: OSS Toolchain Discussion - SFO17-409
LAS16-201: ART JIT in Android N
LCA13: Android Infrastructure Automation Improvements
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
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
Connector Corner: Transform Unstructured Documents with Agentic Automation
PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PPTX
Internet of Everything -Basic concepts details
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PPTX
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
Auditboard EB SOX Playbook 2023 edition.
Connector Corner: Transform Unstructured Documents with Agentic Automation
Electrocardiogram sequences data analytics and classification using unsupervi...
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
Module 1 Introduction to Web Programming .pptx
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
4 layer Arch & Reference Arch of IoT.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Internet of Everything -Basic concepts details
Introduction to MCP and A2A Protocols: Enabling Agent Communication
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
Basics of Cloud Computing - Cloud Ecosystem
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
Training Program for knowledge in solar cell and solar industry
EIS-Webinar-Regulated-Industries-2025-08.pdf
Convolutional neural network based encoder-decoder for efficient real-time ob...
Auditboard EB SOX Playbook 2023 edition.

BKK16-306 ART ii

  • 1. Presented by Date Event ART II New Member Assimilation GuideSerban Constantinescu BKK16-306 March 9, 2016 Linaro Connect BKK16
  • 2. Who are we? ● LMG ○ Linaro Android Runtime Team (ART) ● 7 engineers @ ARM ● 2 engineers @ Spreadtrum
  • 3. What do we do? ● Linaro ART Tip (Upstream) ○ Focus on improving ART for the next Android release ● Linaro ART Stable (Linaro) ○ Focus on improving ART for the current Android release
  • 7. Task Selection ● Jira component ○ ART-Tip, ART-Stable within the LMG project ● Jira labels ○ For classifying the ART subsystems ● Fix version ○ For identifying our current focus ● Kanban ○ With daily scrum meetings (Scrumban) ○ Works well when working on fast-paced upstream projects!
  • 8. Kanban Todo In Development Review Done Development Cycle
  • 9. Kanban Todo In Development Review Done Increasing Priority Development Cycle
  • 12. Development ● Take a look at Scott Wakeling’s BKK16-302 ● Develop ○ Google’s coding style (take a look at the surrounding code) ○ Simple is better! ● Test ○ Gtests, Java tests, Checker tests ● Benchmark ○ ART-testing framework (write a new benchmark) ● Questions & guidance ○ #linaro-art IRC
  • 14. Internal Code Review ● 2 Gerrit instances ○ Public code review (ART-Testing patches) ○ Private code review (ART patches) ● All ART patches ready for internal review ○ Should pass: mma test-art-host && mma test-art-target ● All ART patches ready for upstream review ○ +2 from Linaro ART Leads! ○ +1 from Linaro ART! ○ +1 from Linaro Automation?! ○ Have replies to all comments
  • 18. Testing ● Thanks Daniel, Milosz, Vishal and [email protected]! ● Tests types ○ Run on every Gerrit patch submission ○ Run on every tree update (every 6hrs) ● Build monitors ○ Linaro ART Tip ○ Linaro ART Stable ● Every test ○ Has a short description ○ Stores useful logs and pinned-manifest.xml
  • 19. Test: ARTHostTest ● Description ○ mma test-art-host ○ gtests, java tests, checker tests ○ Builds on host, runs on host ○ Generates Gtests results ● Trigger ○ Every patch submission ○ Every tree update ● When should be run? ○ On every patch submitted for review (automatically triggered)
  • 20. Test: ARTTargetTest ● Description ○ mma test-art-target for ARM and ARM64 ○ gtests, java tests, checker tests ○ Builds on host, runs on target ○ Tests run in a chroot like environment ● Trigger ○ Every patch submission ○ Every tree update ● When should be run? ○ On every patch submitted for review (automatically triggered)
  • 21. Test: ARTBootImageMeasurements ● Description ○ Builds boot.oat using dex2oat for all the ART targets ○ Builds on host, runs on host ○ Generates compile time and size plots ● Trigger ○ Every tree update ○ Topic trigger repo upload art/ --dest=master/IncludeARTBootImageMeasurements ● When should be run? ○ Concerned about compile time and size
  • 22. Test: ARTCodeCoverage ● Description ○ Builds boot.oat using dex2oat for all the ART targets ○ Runs the host gtest ○ Builds on host, runs on host ○ Generates code coverage reports ● Trigger ○ Every tree update ○ Topic trigger repo upload art/ --dest=master/IncludeARTCodeCoverage ● When should be run? ○ Concerned about code paths exercised
  • 23. Test: ARTBootToGUI-aosp_arm64 ● Description ○ Builds the aosp_arm64 target and runs it in the emulator ○ Builds on host, runs on host ○ Generates build and boot time plots ● Trigger ○ Every tree update ○ Topic trigger repo upload art/ --dest=master/IncludeBootToGUI ● When should be run? ○ Concerned about booting to GUI
  • 24. How to debug a test failure? ● Look at the test trigger ○ Tree update or patch trigger? ● Take a look at ○ Test status ○ Parsed console output ○ The build logs ● Run the tests locally ○ Grab the pinned-manifest.xml ○ Run the test scripts locally (WIP)
  • 25. Example: ARTTargetTest Failure ● Test status: 145-alloc-tracking-stress failed ● Trigger type: Tree Update ● Parsed console output test-art-target-run-test-default failed (ARM/ARM64) test-art-target-run-test-optimizing failed (ARM/ARM64) ● Build logs (only need to take a look at default and optimizing logs) /home/buildslave/srv/linaro-art-tip-build-ARTTargetTest/android/art/test/145-alloc-tracking-stress: FAILED! #################### info # Regression test for b/18661622 #################### diffs --- expected.txt 2016-03-02 10:00:23.446375718 +0000 +++ output.txt 2016-03-02 12:15:51.386021604 +0000 @@ -1 +1 @@ -Finishing +Aborted ####################
  • 26. Example: ARTTargetTest Failure ● What next? ○ Grab the pinned-manifest.xml ○ Reproduce the failure locally! ○ Fix the failure (see more info in Scott Wakeling’s BKK16-302)
  • 28. Benchmarking ● Thanks Daniel, Milosz, Vishal and [email protected]! ● Jenkins & LAVA ○ Benchmarking on Nexus 9 (Nexus 5x soon) ● Runs on every patch submitted for review and every tree update ● ART Reports - sent by email ○ Every patch (posted to Gerrit), week, month ● ART Graphs ● Using ART-testing as a workload ○ Performance, compile time and size
  • 31. Benchmark: Nexus9-MicroBenchmarks ● Description ○ Jenkins builds a Nexus 9 image and sends it over to Lava ○ LAVA runs the benchmarks for ARM and ARM64 ○ LAVA stores the results in the database and sends reports ● Trigger ○ Every patch submission ○ Every tree update ● When should be run? ○ On every patch submitted for review (automatically triggered)
  • 32. Example: Nexus9-MicroBenchmarks Run ● Gerrit Patch Jenkins build System Image ART Report
  • 33. Future Work on Testing & Benchmarking ● Testing ○ More stable tests! ○ Ability to run Jenkins scripts locally ○ More tests - Clang sanitizers, dex fuzzing, Valgrind tests, etc. ● Benchmarking ○ More devices - Nexus 5x, 6p, future devices ○ Compilation time and sizes for various apks ○ Benchmark profiles
  • 35. Upstream Code Review ● Always use two Android trees! ○ A Linaro tree - for internal review ○ An AOSP tree - for external review ● All patches submitted upstream should ○ Have a +2 in the internal review ○ Small fixes do not need to be re-reviewed internally ○ Reworks and new features need to be re-reviewed internally! ○ Have Linaro ART Leads added as reviewers upstream