Improve SMP on Android

Registered by Zach Pfeffer on 2012-01-19

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:
milestone icon connect-q1.12
Started by
Zach Pfeffer on 2012-02-27
Completed by
Zach Pfeffer on 2012-02-27

Related branches

Sprints

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-parallelize-loops=2 without adding
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://docs.google.com/a/linaro.org/presentation/d/1hapNTOCIkhrp-Sk9qc4yDAZg3QVt9E8hLC33LRN27DE/edit?hl=en_US#slide=id.p5
(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.

(?)

Work Items