project treble -...

36
Project Treble September 28, 2017 Iliyan Malchev

Upload: vannga

Post on 26-Apr-2018

223 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Project Treble

September 28, 2017

Iliyan Malchev

Page 2: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

What and Why

1

What is the problem? Why do we care to solve

it?

Userspace

2

What is the solution?

What is the timeframe?

Kernel

3

Tackling kernel fragmentation

Results

4

Some stats and early results

I Agenda

Page 3: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

What's the Problem?

Page 4: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

https://developer.android.com/about/dashboards/index.html

I Userspace

Page 5: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

I Kernel

3.4

3.1

3.10

3.18

Page 6: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Why Care?

Page 7: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Faster Device Launches on Latest Google SoC OEM users

Easier Device Upgrades Google

Better Quality Google SoC OEM users

BEtter Security (esp. Kernel) Google SoC OEM users

I Who Wants What

Page 8: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

The Life of an Android Device Launch

Page 9: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

I Start with AOSP

Page 10: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

...

I Add Functionality/Customizations

Page 11: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

...

I Adapt to SoC and Device

Page 12: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

"HALs"

"Ext"AOSP

I Reality

Page 13: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

● Short product cycles

● No Single Android OS to update

○ Large AOSP Delta

○ SoC Support not universal

● Certification: Carrier, Regulatory, CTS

● QA

● Support (Call Center), OTA Infrastructure, etc...

"HALs"

ExtAOSP

I Difficult means Expensive

Page 14: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

How to Fix it?

Page 15: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Architectural changesAndroid Platform

Operational changesPartner outreach

Compatibility changesPartner outreach

UpstreamingAndroid Platform

I Project Treble

Page 16: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

ExtAOSP "HALs"

ExtAOSP

I Solve SoC Support

Page 17: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

kernel driverdriverdriver driverdriverlibc

other libraries

activity

Media Server

System Server

Camera Server

Audio Server

Surface Flinger

OMX

...

...camera

HALaudio HAL gralloc

hwcsensor

HAL etc

ART

API java.* android.*

GL

HAL

Binder

I Android Architecture Pre-O

Page 18: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

kernel driverdriverdriver driverdriverlibc

other libraries

activity

Media Server

System Server

Camera Server

Audio Server

Surface Flinger

OMX

...

...camera HAL

audio HAL

gralloc hwc

sensor HAL etc

ART

API java.* android.*

GL

HAL

Binder

Binder

I Android Architecture Post-O

Page 19: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

I The Vendor Test Suite

CTS

VTS

Android Framework

VINTF Implementation

General System Image

VINTF Implementation

CTS on AOSP

<Before Oreo> <Android Oreo>

HAL Kernel Library

Page 20: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

"HALs"

ExtAOSP

I Tackle the AOSP Delta

Page 21: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Q3 ACP ALL HANDS

Multiple implementations of same functionality

Drive convergence between AOSP and Framework Variants

Forum involving major contributors to AOSP

Feature review, approval, (re)engineering

Non-US regulatory requirementsExtensions to Bluetooth, Telephony, Dialer, SysUI, Home Screen

I Upstreaming

Page 22: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

"HALs"

ExtAOSPExtAOSP

Page 23: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

● Compliance○ Vendor Test Suite (VTS): tests for HALs

■ must pass VTS for approval○ must pass CTS on AOSP

● All OEM Devices launched with O○ Must implement Treble HALs○ Including older SoCs that will be used by OEMs to launch O based

devices

Must pass Vendor Test Suite (VTS; tests for HALs) for approval

All OEM devices launched with O must implement Treble HALs

Must pass CTS on AOSP

Q3 ACP ALL HANDS

This includes older SoCs that will be used by OEMs to launch O-based devices

I Compatibility Requirements

Page 24: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

How Fast to Fix it?

Page 25: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

● Release uptake is 6 months to a year

○ Mostly just flagships

● Solving the problem forwards

● Customer pull is strong

● Attention Span outside and within

● Addressing fragmentation is a MUST

I The One-Release Fix

Page 26: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

The Kernel

Page 27: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Existing LTS is not Enough

Device Kernel

Stable Long Term Support

Android Common

SoC Kernel

Device Release

Device Update

Clone Merge Cherry-Pick

Device Update

Device Update

Device Update

Page 28: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Announcing 6-year LTS

Device Kernel

Stable Long Term Support

Android Common

SoC Kernel

Device Release

Device Update

Clone Merge Cherry-Pick

Device Update

Device Update

Device Update

Page 29: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Stats

Page 30: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

health/1.0

thermal/1.0

oemlock/1.0

gnss/1.0

automotive/vehicle/2.0

automotive/vehicle/2.1

automotive/evs/1.0

audio/2.0

audio/effect/2.0

audio/common/2.0

vibrator/1.1

vibrator/1.0

tv/cec/1.0

tv/input/1.0

bluetooth/1.0

usb/1.1

usb/1.0

gatekeeper/1.0

wifi/offload/1.0

wifi/supplicant/1.0

wifi/1.0

radio/1.1

radio/1.0

radio/deprecated/1.0

renderscript/1.0

weaver/1.0

light/2.0

keymaster/3.0

soundtrigger/2.0

ir/1.0

boot/1.0

graphics/allocator/2.0

graphics/bufferqueue/1.0

graphics/mapper/2.0

graphics/common/1.0

graphics/composer/2.1

drm/1.0

nfc/1.0

biometrics/fingerprint/2.1

contexthub/1.0

broadcastradio/1.1

broadcastradio/1.0

power/1.1

power/1.0

vr/1.0

sensors/1.0

configstore/1.1

configstore/1.0

media/omx/1.0

media/1.0

memtrack/1.0

dumpstate/1.0

camera/metadata/3.2

camera/provider/2.4

camera/device/3.2

camera/device/1.0

camera/common/1.0

tetheroffload/control/1.0

tetheroffload/config/1.0

I 60 Subsystem Conversions

Page 31: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Authors

Files

300

3000Commits

20kLOC

~1M

I Code Stats

Page 32: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Qualcomm, Mediatek,

Samsung/LSI,

Huawei/HiSilicon, Motorola,

Sony, LG

Partners

San Diego

Taipei

Seoul

Onsite Teams

7

3 Direct on-site visits

Partner Summits

Android Bootcamp

Executive Sync-ups

Forums

+ 3 Qualcomm SoCs

1 Mediatek SoC

1 HiSilicon SoC

1 Exynos SoC

SONY

Huawei

Samsung

Oreo Launches / Upgrades

3/1

I Partner Outreach

Page 33: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Next Steps

Page 34: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

Clone Merge Cherry-Pick

Linux 4.9.y

Android Common 4.9

msm-4.9(Common SoC

Kernel)

MSMXXXX based device 1

MSMXXXX based device 2

MSMXXXX based device 3

Linux 4.9.y xLTSbackports

exynos-4.9(Common SoC

Kernel)

mediatek-4.9(Common SoC

Kernel)

I Kernel Unification

Page 35: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

I There's More To Do

● Continued work with SoC Vendors

● Continued work on Kernel Unification

● Expanding test coverage

● Bringing the ecosystem together with Linaro

Page 36: Project Treble - connect.linaro.org.s3.amazonaws.comconnect.linaro.org.s3.amazonaws.com/sfo17/Presentations/SFO17-400K... · mediatek-4.9 (Common SoC Kernel) I Kernel Unification

END