Improve SMP on Android
Talk about existing Android SMP improvements and tests and plan for future improvements and tests.
Blueprint information
- Status:
- Complete
- Approver:
- Zach Pfeffer
- Priority:
- Essential
- Drafter:
- Bernhard Rosenkraenzer
- Direction:
- Approved
- Assignee:
- Bernhard Rosenkraenzer
- Definition:
- Approved
- Series goal:
- Accepted for 2012q1
- Implementation:
- Implemented
- Milestone target:
- connect-q1.12
- Started by
- Zach Pfeffer
- Completed by
- Zach Pfeffer
Whiteboard
Meta:
Roadmap id: ANDROID2012-SMP-IMP
Topics:
- Current status of SMP support in Android
---- Make sure Gingerbread-era Bionic reentrancy issues are actually fixed in ICS
- Some ideas for easy-to-do optimizations
---- Check where we can use -ftree-
more overhead than it's worth
---- Check for places to put manual OpenMP markers
---- Make sure we don't hurt performance on UP systems (#ifdef everything
out based on TARGET_CPU_SMP setting)
- Problems to avoid (performance penalties on UP, ...)
---- Optimizing libs, which libs?
---- Applications or benchmarks to tests?
---- Renderscript?
- Determine best way forward
Slides:
https:/
(slightly damaged by LibreOffice -> PPT -> Google conversions)
___Notes____
Welcome to Linaro!
This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!
* Can we use the DS-5 Streamline tool to visualize SMP behavior under different workloads?
* Where does "good SMP=all cores at work" conflict with Power Management objectives?
Notes
Other libra
OpenMP
f-free-paralleize loops
with OpenMP
it must be parallel code
rewrite
rewrite algorithm
You have to be able to understand where's the bottleneck
Webki was parallelized with OpenMP
We need to understand
What is a synthetic workload
parallelize
reduce energy drain
Is there such a thing?
core
top, perf,
momentary burst of CPU usage
tracing technology
uprobes
LTTng
what you like to do is measure power measurment to determin SMP
tracing -
What are the existing benchmarks?
How do you corrolate
big.LITTLE?
4.7?
OpenGL
Skia
Order of Mangitude
Hardware codecs
Partial decoding on ARM and partial on DSP
Codec
ffmpeg - multithreaded
rip out stagefright and use ffmpeg - stagefight
into the kernel
ARM specific code
Performance power
Android specific parts of SMP, global things
John Stultz
Binder, wakelocks
pinning
User sched set affinity
cpu hotplug
cgroups,
use cgroups and hotplug
Skia
Take some numbers
Battery life
SMP big.LITTLE
boring questions :)
Test loads?
FPGA systems?
Most valuable
Lets get a workload
Monkey runner
0xlabs
Userspace RCU?
Correctness, linux test project (LTP),
AIs
Workloads for testing
LTP in Android
glibc test suites
Toolchain
f-parrallelize loops
Measurement
Power measurement
Correlate Monkey Runner Scripts
Use power measurement as an SMP measurement.