SlideShare a Scribd company logo
1 of 34
Download to read offline
©ARM 2016
LAS16-105
Walkthrough of the EAS
kernel adaptation to the
Android Common Kernel
Juri Lelli
Linaro Connect
Senior Software Engineer / ARM Ltd.
LasVegas 2016
©ARM 20162
Recap – What is EAS?
 Scheduling tasks while considering the energy implication
System
topology
Workload
Task
Scheduler
Frequency
selection
CPU
selection
Idle state
selection
Performance
Energy
©ARM 20163
Recap – Why EAS?
 Holistic “joined-up” power/perf management in the kernel
 Sensible defaults for performance, including asymmetric systems
 Optional alternative to the default throughput oriented nature
of the Linux scheduler: energy efficiency
 Simplified tuning interface (some level of tuning still required!)
 ... that makes it possible to couple an “aware” runtime with the kernel in
well defined ways
©ARM 20164
Recap – Why EAS?
 Holistic “joined-up” power/perf management in the kernel
 Sensible defaults for performance, including asymmetric systems
 Optional alternative to the default throughput oriented nature
of the Linux scheduler: energy efficiency
 Simplified tuning interface (some level of tuning still required!)
 ... that makes it possible to couple an “aware” runtime with the kernel in
well defined ways
That’s why EAS has landed in the AOSP kernel!
©ARM 20165
Recap – Why EAS?
 Holistic “joined-up” power/perf management in the kernel
 Sensible defaults for performance, including asymmetric systems
 Optional alternative to the default throughput oriented nature
of the Linux scheduler: energy efficiency
 Simplified tuning interface (some level of tuning still required!)
 ... that makes it possible to couple an “aware” runtime with the kernel in
well defined ways
That’s why EAS has landed in the AOSP kernel!
©ARM 20166
EAS - The story so far
All policy, all metrics, all
averaging should happen at the
scheduler power saving level, in
a single place, and then the
scheduler should directly drive
the new low level idle state
driver mechanism.
- Ingo Molnar (31 Mar 2013)
2013 2014 2015 2016 2017
LAS16
Linaro
shallowest
idle
Sep-2014
MERGED
ARM
EAS
RFCv5
Jul-2015
ARM
Schedtune
RFC
Aug-2015
ARM
Foundation
patches
MERGED
Aug-2015
ARM
CPU
capacity
DT
v7
Sep-2016
ARM
Asym
CPU
capacity
support
v4 - tip
Aug-2016
ARM
LISA
tooling
Jan-2016
Linaro/ARM
SchedFreq
RFCv7
Feb-2016
Intel
Schedutil
MERGED
Apr-2016
EAS in
Android
Common
Kernel
Aug-2016
©ARM 20167
Finally.. today’s agenda
 Energy Aware Scheduling: high level introduction
 Android Common Kernel: adaptations breakdown
 Upstream and product code lines
 How to get involved
©ARM 20168
Agenda
 Energy Aware Scheduling: high level introduction
 Android Common Kernel: adaptations breakdown
 Upstream and product code lines
 How to get involved
©ARM 20169
Energy Aware Scheduling – Detailed view
DT arch (arm, arm64) topology shim
energy
model
CIE
DMIPS/MHz
CFS
PELT
cpufreq
SchedFreq
cgroups
SchedTune
EAS
wakeup
path
cpuidle
FIE
OPP
Task scheduler
©ARM 201610
EAS
core
Sched
Freq
Sched
Tune
EAS – Core
Asymmetric capacity support
Energy model driven task placement
©ARM 201611
EAS – SchedFreq
EAS
core
Sched
Freq
Sched
Tune
Scheduler driven DVFS
©ARM 201612
EAS – SchedTune
EAS
core
Sched
Freq
Sched
Tune
Centralized tuning mechanism
©ARM 201613
EAS – Userspace
EAS
core
Sched
Freq
Sched
Tune
Userspace interaction
through SchedTune
©ARM 201614
Agenda
 Energy Aware Scheduling: high level introduction
 Android Common Kernel: adaptations breakdown
 Upstream and product code lines
 How to get involved
©ARM 201615
EAS – Baseline
 What we call EAS v5.2+
 Good for mainline, but not quite there
for Android
 performance still meant throughput,
but latency matters a lot!
 heuristics designed for classical b.L.,
might need change with !b.L. topology
 mainline load tracking good for server/
desktop workloads, not so for mobile
 maintainers asked for a single tuning knob, might be too simplistic
©ARM 201616
EAS Modifications – Approach
 Primary focus on workloads that matters for the product
 Latency sensitive workloads, such as
YouTube, Camera record, UiBench, Jankbench, etc.
1. run baseline (using LISA [1])
2. figure out sub-optimal behaviour by trace inspection or
perceived/measured performance
3. brainstorm!
4. propose a change and compare with the baseline (perf and/or energy)
5. looks good? ship it!
6. goto 2
 Primary focus was on UX, secondary focus on competitive benchmarks
Geekbench,Vellamo, etc.
[1] Update on LISA hacking session
©ARM 201617
EAS Modifications – An example (listview1)
number of samples
[1] Coupling schedutil with EAS-core hacking session
framerenderingduration(ms)
©ARM 201618
EAS Modifications – An example (listview1)
number of samples
[1] Coupling schedutil with EAS-core hacking session
framerenderingduration(ms)
jank frames!!!
99th perc.
©ARM 201619
Android Common Kernel adaptations
DT arch (arm, arm64) topology shim
energy
model
CIE
CFS
PELT
cpufreq
SchedFreq
cgroups
SchedTune
EAS
wakeup
path
cpuidle
WALT
FIE
Task scheduler
Userspace
©ARM 201620
EAS – load tracking
 Window Assisted LoadTracking
 alternative approach (w.r.t. PELT) to track tasks
demand and CPUs utilization
“windows vs. decayed signal” [1]
 Configuration time option and procfs interface to
switch between WALT and PELT
EAS
WALT
Better service of latency sensitive applications
while meeting energy consumption targets
Limited device testing has shownWALT to be better
Upstream version under discussion
(eas-dev)
Several modifications and fixes for PELT
Attend LAS16-311“Window Based LoadTracking
(WALT) versus PELT utilization” and hacking session
for more information
[1] WALT vs PELT presentations and
hacking sessions
©ARM 201621
EAS – SchedTune
 prefer_idle flag
 negative boosting Sched
Tune
Sched
Freq
prefer_idle expresses the desire for low-latency
wakeups
Negative boosting makes background / non latency sensitive
tasks appear smaller (thus favouring packing and lower clock
frequency selection)
Improve the definition of the power/perf
trade-off
Post an updated RFC on LKML (OPP and
CPU selection biasing)
©ARM 201622
EAS – Task wakeup path
 adaptations guarded by
/proc/sys/kernel/sched_is_big_little
sched_is_big_little = 0 (SMP-like)
 implemented by find_best_target()
1. establish if task is boosted and if it prefers idle CPUs
2. all CPUs available on the system are considered
 starting from first CPU for non boosted tasks
 starting from last CPU for boosted tasks
3. a CPU is chosen looking at
 task (boosted) utilization
 prefer_idle
 CPU capacity and current utilization
4. no energy model if boosted or prefer_idle and candidate is idle
EAS
wakeup
path
• CPU discarded if task doesn’t fit
• first idle CPU for a prefer_idle
• CPUs with capacity at higher OPP annotated as
backup
• enough capacity at current OPP preferred
• lowest utilization for prefer_idle
• highest utilization for !prefer_idle
©ARM 201623
EAS – Task wakeup path
 adaptations guarded by
/proc/sys/kernel/sched_is_big_little
sched_is_big_little = 0 (SMP-like)
 implemented by find_best_target()
EAS
wakeup
path
Flat CPU selection heuristic better fits SMP(-ish)
topologies
Tuned to service boosted and latency sensitive tasks
Doesn’t touch original EAS selection heuristic
Wakeup path subject to change in
upstream codeline
Consider possibilities for merging
!big_little and big_little wakeup paths
©ARM 201624
EAS – SchedFreq
 change “go to max” policy
 up/down throttling thresholds
 quick in responding to sudden demand
 hysteresis for brief drops
Task
scheduler
Sched
Freq
Improve responsiveness while achieving energy savings
(switching too frequently harms energy)
Superseded by upstream schedutil
governor
Port required features to schedutil
Attend LAS16-307“Benchmarking Schedutil in
Android” and hacking session for more information
©ARM 201625
Userspace
 Keep the tuning out of the kernel and in more
“aware” run-time layers
 Tuning happens via a single, localised surface
 Android subsystems and the kernel are wired up via
SchedTune
 Attend “AOSP Energy Aware Scheduler Integration” session
for more details ...
 but some are still worth showing here as well
User
space
©ARM 201626
Userspace – EAS and Activity Manager
BACKGROUND
prefer_idle = 0
boost = 0
FOREGROUND
prefer_idle = 1
boost = 0
TOP_APP
prefer_idle = 1
boost = 10
©ARM 201627
Userspace – EAS and Activity Manager
BACKGROUND
prefer_idle = 0
boost = 0
FOREGROUND
prefer_idle = 1
boost = 0
TOP_APP
prefer_idle = 1
boost = 50
touchboost
POWER_HINT_INTERACTION
©ARM 201628
Agenda
 Energy Aware Scheduling: high level introduction
 Android Common Kernel: adaptations breakdown
 Mainline and product code lines
 How to get involved
©ARM 201629
Mainline codeline
 Mainline strategy (after EASv5)
 split huge patchset into smaller chunks and get them merged
BKK16-311: EAS core – upstreaming strategy goo.gl/AxCkK5
 moving integration branch tracking tip/sched/core goo.gl/zw9iGC
ARM linux-power.git -- tip:sched/core snapshots
http://linux-arm.org/git?p=linux-power.git
EAS
RFCv5.0
EAS v5.1
linux-power only
EAS v5.2
linux-power only
mainline
EAS-core
EAS v6.0
new PELT (4.2) schedutil (4.7)
Clean-ups and
asymmetric cpu
capacity support
Sep 2016
RFC RFCv3
Incremental
patches
capacity
integration
©ARM 201630
Product codeline
 Android Common Kernel
 https://android.googlesource.com/kernel/common/+log/android-3.18
 https://android.googlesource.com/kernel/common/+log/android-4.4
 next target will likely be Android 4.9
 LSK
©ARM 201631
Product codeline – development
Downstream
New feature / fix
discussion
Comprehensive testing
And further review
Upstream
AOSP LSK
eas-dev
AOSP
Gerrit
Patch(es)
reviewed
©ARM 201632
Agenda
 Energy Aware Scheduling: an introduction
 Android Common Kernel: adaptations breakdown
 Mainline and products code lines
 How to get involved
©ARM 201633
How to get involved
 Discussions on Linux Kernel Mailing List
 tested-by: and reviewed-by:
 Android Common kernel Gerrit
https://android-review.googlesource.com/#/q/status:open+project:kernel/common
 eas-dev mailing list
https://lists.linaro.org/pipermail/eas-dev/
 #linaro-eas IRC channel on freenode
The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM Limited
(or its subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be
trademarks of their respective owners.
Copyright © 2016 ARM Limited
©ARM 2016
Thanks!
Questions?
<juri.lelli@arm.com>

More Related Content

What's hot

Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...The Linux Foundation
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLinaro
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
Continguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelContinguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelKernel TLV
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKBshimosawa
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals哲豪 康哲豪
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceBrendan Gregg
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory ManagementNi Zo-Ma
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelHaifeng Li
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Adrian Huang
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)Linaro
 

What's hot (20)

Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Continguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelContinguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux Kernel
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory Management
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
 

Viewers also liked

LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)Linaro
 
BUD17-218: Scheduler Load tracking update and improvement
BUD17-218: Scheduler Load tracking update and improvement BUD17-218: Scheduler Load tracking update and improvement
BUD17-218: Scheduler Load tracking update and improvement Linaro
 
BUD17-309: IRQ prediction
BUD17-309: IRQ prediction BUD17-309: IRQ prediction
BUD17-309: IRQ prediction Linaro
 
LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101Linaro
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLinaro
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareLinaro
 
BUD17-300: Journey of a packet
BUD17-300: Journey of a packetBUD17-300: Journey of a packet
BUD17-300: Journey of a packetLinaro
 

Viewers also liked (7)

LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)
 
BUD17-218: Scheduler Load tracking update and improvement
BUD17-218: Scheduler Load tracking update and improvement BUD17-218: Scheduler Load tracking update and improvement
BUD17-218: Scheduler Load tracking update and improvement
 
BUD17-309: IRQ prediction
BUD17-309: IRQ prediction BUD17-309: IRQ prediction
BUD17-309: IRQ prediction
 
LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community Update
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
 
BUD17-300: Journey of a packet
BUD17-300: Journey of a packetBUD17-300: Journey of a packet
BUD17-300: Journey of a packet
 

Similar to LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel

Presentation aix performance updates &amp; issues
Presentation   aix performance updates &amp; issuesPresentation   aix performance updates &amp; issues
Presentation aix performance updates &amp; issuessolarisyougood
 
Presentation aix performance updates & issues
Presentation   aix performance updates & issuesPresentation   aix performance updates & issues
Presentation aix performance updates & issuesxKinAnx
 
Large-Scale Optimization Strategies for Typical HPC Workloads
Large-Scale Optimization Strategies for Typical HPC WorkloadsLarge-Scale Optimization Strategies for Typical HPC Workloads
Large-Scale Optimization Strategies for Typical HPC Workloadsinside-BigData.com
 
Deview 2013 rise of the wimpy machines - john mao
Deview 2013   rise of the wimpy machines - john maoDeview 2013   rise of the wimpy machines - john mao
Deview 2013 rise of the wimpy machines - john maoNAVER D2
 
Parallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPParallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPAnil Bohare
 
참여기관_발표자료-국민대학교 201301 정기회의
참여기관_발표자료-국민대학교 201301 정기회의참여기관_발표자료-국민대학교 201301 정기회의
참여기관_발표자료-국민대학교 201301 정기회의DzH QWuynh
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCoburn Watson
 
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Amazon Web Services
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Qualcomm Developer Network
 
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5Jeff Larkin
 
load-balancing-method-for-embedded-rt-system-20120711-0940
load-balancing-method-for-embedded-rt-system-20120711-0940load-balancing-method-for-embedded-rt-system-20120711-0940
load-balancing-method-for-embedded-rt-system-20120711-0940Samsung Electronics
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningScott Jenner
 
Trends of SW Platforms for Heterogeneous Multi-core systems and Open Source ...
Trends of SW Platforms for Heterogeneous Multi-core systems and  Open Source ...Trends of SW Platforms for Heterogeneous Multi-core systems and  Open Source ...
Trends of SW Platforms for Heterogeneous Multi-core systems and Open Source ...Seunghwa Song
 
Embedded systems-unit-1
Embedded systems-unit-1Embedded systems-unit-1
Embedded systems-unit-1Prabhu Mali
 
JVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark applicationJVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark applicationTatsuhiro Chiba
 
Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Community
 
Presentation exploit power vm features to maximize performance &amp; effici...
Presentation   exploit power vm features to maximize performance &amp; effici...Presentation   exploit power vm features to maximize performance &amp; effici...
Presentation exploit power vm features to maximize performance &amp; effici...solarisyougood
 
Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Marina Kolpakova
 
Shak larry-jeder-perf-and-tuning-summit14-part1-final
Shak larry-jeder-perf-and-tuning-summit14-part1-finalShak larry-jeder-perf-and-tuning-summit14-part1-final
Shak larry-jeder-perf-and-tuning-summit14-part1-finalTommy Lee
 

Similar to LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel (20)

Presentation aix performance updates &amp; issues
Presentation   aix performance updates &amp; issuesPresentation   aix performance updates &amp; issues
Presentation aix performance updates &amp; issues
 
Presentation aix performance updates & issues
Presentation   aix performance updates & issuesPresentation   aix performance updates & issues
Presentation aix performance updates & issues
 
Large-Scale Optimization Strategies for Typical HPC Workloads
Large-Scale Optimization Strategies for Typical HPC WorkloadsLarge-Scale Optimization Strategies for Typical HPC Workloads
Large-Scale Optimization Strategies for Typical HPC Workloads
 
Deview 2013 rise of the wimpy machines - john mao
Deview 2013   rise of the wimpy machines - john maoDeview 2013   rise of the wimpy machines - john mao
Deview 2013 rise of the wimpy machines - john mao
 
Parallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPParallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMP
 
참여기관_발표자료-국민대학교 201301 정기회의
참여기관_발표자료-국민대학교 201301 정기회의참여기관_발표자료-국민대학교 201301 정기회의
참여기관_발표자료-국민대학교 201301 정기회의
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
 
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
 
load-balancing-method-for-embedded-rt-system-20120711-0940
load-balancing-method-for-embedded-rt-system-20120711-0940load-balancing-method-for-embedded-rt-system-20120711-0940
load-balancing-method-for-embedded-rt-system-20120711-0940
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance Tuning
 
PROSE
PROSEPROSE
PROSE
 
Trends of SW Platforms for Heterogeneous Multi-core systems and Open Source ...
Trends of SW Platforms for Heterogeneous Multi-core systems and  Open Source ...Trends of SW Platforms for Heterogeneous Multi-core systems and  Open Source ...
Trends of SW Platforms for Heterogeneous Multi-core systems and Open Source ...
 
Embedded systems-unit-1
Embedded systems-unit-1Embedded systems-unit-1
Embedded systems-unit-1
 
JVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark applicationJVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark application
 
Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK
 
Presentation exploit power vm features to maximize performance &amp; effici...
Presentation   exploit power vm features to maximize performance &amp; effici...Presentation   exploit power vm features to maximize performance &amp; effici...
Presentation exploit power vm features to maximize performance &amp; effici...
 
Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...
 
Shak larry-jeder-perf-and-tuning-summit14-part1-final
Shak larry-jeder-perf-and-tuning-summit14-part1-finalShak larry-jeder-perf-and-tuning-summit14-part1-final
Shak larry-jeder-perf-and-tuning-summit14-part1-final
 

More from Linaro

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

More from Linaro (20)

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

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel

  • 1. ©ARM 2016 LAS16-105 Walkthrough of the EAS kernel adaptation to the Android Common Kernel Juri Lelli Linaro Connect Senior Software Engineer / ARM Ltd. LasVegas 2016
  • 2. ©ARM 20162 Recap – What is EAS?  Scheduling tasks while considering the energy implication System topology Workload Task Scheduler Frequency selection CPU selection Idle state selection Performance Energy
  • 3. ©ARM 20163 Recap – Why EAS?  Holistic “joined-up” power/perf management in the kernel  Sensible defaults for performance, including asymmetric systems  Optional alternative to the default throughput oriented nature of the Linux scheduler: energy efficiency  Simplified tuning interface (some level of tuning still required!)  ... that makes it possible to couple an “aware” runtime with the kernel in well defined ways
  • 4. ©ARM 20164 Recap – Why EAS?  Holistic “joined-up” power/perf management in the kernel  Sensible defaults for performance, including asymmetric systems  Optional alternative to the default throughput oriented nature of the Linux scheduler: energy efficiency  Simplified tuning interface (some level of tuning still required!)  ... that makes it possible to couple an “aware” runtime with the kernel in well defined ways That’s why EAS has landed in the AOSP kernel!
  • 5. ©ARM 20165 Recap – Why EAS?  Holistic “joined-up” power/perf management in the kernel  Sensible defaults for performance, including asymmetric systems  Optional alternative to the default throughput oriented nature of the Linux scheduler: energy efficiency  Simplified tuning interface (some level of tuning still required!)  ... that makes it possible to couple an “aware” runtime with the kernel in well defined ways That’s why EAS has landed in the AOSP kernel!
  • 6. ©ARM 20166 EAS - The story so far All policy, all metrics, all averaging should happen at the scheduler power saving level, in a single place, and then the scheduler should directly drive the new low level idle state driver mechanism. - Ingo Molnar (31 Mar 2013) 2013 2014 2015 2016 2017 LAS16 Linaro shallowest idle Sep-2014 MERGED ARM EAS RFCv5 Jul-2015 ARM Schedtune RFC Aug-2015 ARM Foundation patches MERGED Aug-2015 ARM CPU capacity DT v7 Sep-2016 ARM Asym CPU capacity support v4 - tip Aug-2016 ARM LISA tooling Jan-2016 Linaro/ARM SchedFreq RFCv7 Feb-2016 Intel Schedutil MERGED Apr-2016 EAS in Android Common Kernel Aug-2016
  • 7. ©ARM 20167 Finally.. today’s agenda  Energy Aware Scheduling: high level introduction  Android Common Kernel: adaptations breakdown  Upstream and product code lines  How to get involved
  • 8. ©ARM 20168 Agenda  Energy Aware Scheduling: high level introduction  Android Common Kernel: adaptations breakdown  Upstream and product code lines  How to get involved
  • 9. ©ARM 20169 Energy Aware Scheduling – Detailed view DT arch (arm, arm64) topology shim energy model CIE DMIPS/MHz CFS PELT cpufreq SchedFreq cgroups SchedTune EAS wakeup path cpuidle FIE OPP Task scheduler
  • 10. ©ARM 201610 EAS core Sched Freq Sched Tune EAS – Core Asymmetric capacity support Energy model driven task placement
  • 11. ©ARM 201611 EAS – SchedFreq EAS core Sched Freq Sched Tune Scheduler driven DVFS
  • 12. ©ARM 201612 EAS – SchedTune EAS core Sched Freq Sched Tune Centralized tuning mechanism
  • 13. ©ARM 201613 EAS – Userspace EAS core Sched Freq Sched Tune Userspace interaction through SchedTune
  • 14. ©ARM 201614 Agenda  Energy Aware Scheduling: high level introduction  Android Common Kernel: adaptations breakdown  Upstream and product code lines  How to get involved
  • 15. ©ARM 201615 EAS – Baseline  What we call EAS v5.2+  Good for mainline, but not quite there for Android  performance still meant throughput, but latency matters a lot!  heuristics designed for classical b.L., might need change with !b.L. topology  mainline load tracking good for server/ desktop workloads, not so for mobile  maintainers asked for a single tuning knob, might be too simplistic
  • 16. ©ARM 201616 EAS Modifications – Approach  Primary focus on workloads that matters for the product  Latency sensitive workloads, such as YouTube, Camera record, UiBench, Jankbench, etc. 1. run baseline (using LISA [1]) 2. figure out sub-optimal behaviour by trace inspection or perceived/measured performance 3. brainstorm! 4. propose a change and compare with the baseline (perf and/or energy) 5. looks good? ship it! 6. goto 2  Primary focus was on UX, secondary focus on competitive benchmarks Geekbench,Vellamo, etc. [1] Update on LISA hacking session
  • 17. ©ARM 201617 EAS Modifications – An example (listview1) number of samples [1] Coupling schedutil with EAS-core hacking session framerenderingduration(ms)
  • 18. ©ARM 201618 EAS Modifications – An example (listview1) number of samples [1] Coupling schedutil with EAS-core hacking session framerenderingduration(ms) jank frames!!! 99th perc.
  • 19. ©ARM 201619 Android Common Kernel adaptations DT arch (arm, arm64) topology shim energy model CIE CFS PELT cpufreq SchedFreq cgroups SchedTune EAS wakeup path cpuidle WALT FIE Task scheduler Userspace
  • 20. ©ARM 201620 EAS – load tracking  Window Assisted LoadTracking  alternative approach (w.r.t. PELT) to track tasks demand and CPUs utilization “windows vs. decayed signal” [1]  Configuration time option and procfs interface to switch between WALT and PELT EAS WALT Better service of latency sensitive applications while meeting energy consumption targets Limited device testing has shownWALT to be better Upstream version under discussion (eas-dev) Several modifications and fixes for PELT Attend LAS16-311“Window Based LoadTracking (WALT) versus PELT utilization” and hacking session for more information [1] WALT vs PELT presentations and hacking sessions
  • 21. ©ARM 201621 EAS – SchedTune  prefer_idle flag  negative boosting Sched Tune Sched Freq prefer_idle expresses the desire for low-latency wakeups Negative boosting makes background / non latency sensitive tasks appear smaller (thus favouring packing and lower clock frequency selection) Improve the definition of the power/perf trade-off Post an updated RFC on LKML (OPP and CPU selection biasing)
  • 22. ©ARM 201622 EAS – Task wakeup path  adaptations guarded by /proc/sys/kernel/sched_is_big_little sched_is_big_little = 0 (SMP-like)  implemented by find_best_target() 1. establish if task is boosted and if it prefers idle CPUs 2. all CPUs available on the system are considered  starting from first CPU for non boosted tasks  starting from last CPU for boosted tasks 3. a CPU is chosen looking at  task (boosted) utilization  prefer_idle  CPU capacity and current utilization 4. no energy model if boosted or prefer_idle and candidate is idle EAS wakeup path • CPU discarded if task doesn’t fit • first idle CPU for a prefer_idle • CPUs with capacity at higher OPP annotated as backup • enough capacity at current OPP preferred • lowest utilization for prefer_idle • highest utilization for !prefer_idle
  • 23. ©ARM 201623 EAS – Task wakeup path  adaptations guarded by /proc/sys/kernel/sched_is_big_little sched_is_big_little = 0 (SMP-like)  implemented by find_best_target() EAS wakeup path Flat CPU selection heuristic better fits SMP(-ish) topologies Tuned to service boosted and latency sensitive tasks Doesn’t touch original EAS selection heuristic Wakeup path subject to change in upstream codeline Consider possibilities for merging !big_little and big_little wakeup paths
  • 24. ©ARM 201624 EAS – SchedFreq  change “go to max” policy  up/down throttling thresholds  quick in responding to sudden demand  hysteresis for brief drops Task scheduler Sched Freq Improve responsiveness while achieving energy savings (switching too frequently harms energy) Superseded by upstream schedutil governor Port required features to schedutil Attend LAS16-307“Benchmarking Schedutil in Android” and hacking session for more information
  • 25. ©ARM 201625 Userspace  Keep the tuning out of the kernel and in more “aware” run-time layers  Tuning happens via a single, localised surface  Android subsystems and the kernel are wired up via SchedTune  Attend “AOSP Energy Aware Scheduler Integration” session for more details ...  but some are still worth showing here as well User space
  • 26. ©ARM 201626 Userspace – EAS and Activity Manager BACKGROUND prefer_idle = 0 boost = 0 FOREGROUND prefer_idle = 1 boost = 0 TOP_APP prefer_idle = 1 boost = 10
  • 27. ©ARM 201627 Userspace – EAS and Activity Manager BACKGROUND prefer_idle = 0 boost = 0 FOREGROUND prefer_idle = 1 boost = 0 TOP_APP prefer_idle = 1 boost = 50 touchboost POWER_HINT_INTERACTION
  • 28. ©ARM 201628 Agenda  Energy Aware Scheduling: high level introduction  Android Common Kernel: adaptations breakdown  Mainline and product code lines  How to get involved
  • 29. ©ARM 201629 Mainline codeline  Mainline strategy (after EASv5)  split huge patchset into smaller chunks and get them merged BKK16-311: EAS core – upstreaming strategy goo.gl/AxCkK5  moving integration branch tracking tip/sched/core goo.gl/zw9iGC ARM linux-power.git -- tip:sched/core snapshots http://linux-arm.org/git?p=linux-power.git EAS RFCv5.0 EAS v5.1 linux-power only EAS v5.2 linux-power only mainline EAS-core EAS v6.0 new PELT (4.2) schedutil (4.7) Clean-ups and asymmetric cpu capacity support Sep 2016 RFC RFCv3 Incremental patches capacity integration
  • 30. ©ARM 201630 Product codeline  Android Common Kernel  https://android.googlesource.com/kernel/common/+log/android-3.18  https://android.googlesource.com/kernel/common/+log/android-4.4  next target will likely be Android 4.9  LSK
  • 31. ©ARM 201631 Product codeline – development Downstream New feature / fix discussion Comprehensive testing And further review Upstream AOSP LSK eas-dev AOSP Gerrit Patch(es) reviewed
  • 32. ©ARM 201632 Agenda  Energy Aware Scheduling: an introduction  Android Common Kernel: adaptations breakdown  Mainline and products code lines  How to get involved
  • 33. ©ARM 201633 How to get involved  Discussions on Linux Kernel Mailing List  tested-by: and reviewed-by:  Android Common kernel Gerrit https://android-review.googlesource.com/#/q/status:open+project:kernel/common  eas-dev mailing list https://lists.linaro.org/pipermail/eas-dev/  #linaro-eas IRC channel on freenode
  • 34. The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM Limited (or its subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be trademarks of their respective owners. Copyright © 2016 ARM Limited ©ARM 2016 Thanks! Questions? <juri.lelli@arm.com>